有点长镜头。但是无论如何要在构造函数的原型上获得链式属性,并且仍然让“this”上下文指向原始对象实例。例如:
Array.prototype.$ = {};
Array.prototype.$.where = function(selector) {
console.log(this);
return;
};
var myArray = [ 1, 2, 3 ];
myArray.$.where();
控制台输出{ where: [Function] }
,'this' 上下文指向where 函数$ 对象,而不是数组本身。
但是,如果我将其更改为:
Array.prototype.where = function(selector) {
console.log(this);
return;
};
var myArray = [ 1, 2, 3 ];
myArray.where();
它正确输出[ 1, 2, 3 ]