有點長鏡頭。但無論如何,要在構造函數的原型上獲得鏈式屬性,並且仍然將「this」上下文指向原始對象實例。例如:JavaScript - 原型上的鏈接屬性,帶有正確的'this'上下文
Array.prototype.$ = {};
Array.prototype.$.where = function(selector) {
console.log(this);
return;
};
var myArray = [ 1, 2, 3 ];
myArray.$.where();
控制檯輸出{ where: [Function] }
中,「這個」上下文指向
其中功能
$對象,而不是在陣列本身。
但是,如果我將其更改爲:
Array.prototype.where = function(selector) {
console.log(this);
return;
};
var myArray = [ 1, 2, 3 ];
myArray.where();
它正確地輸出[ 1, 2, 3 ]
「的‘本’上下文指向哪裏函數」 - 不,它指向' $'對象,包含'where'函數。 – basilikum
啊,好點basilikum。更新。 –