我当时在修改数组原型,但是我对此感到困惑。如果您能帮助我,那就太好了。
好吧,假设我要向Array.prototype添加函数“ Parent”
Array.prototype.Parent = function() {
console.log(this);
}
接下来,我要向父函数添加子函数。我会这样做:
Array.prototype.Parent.Child = function() {
console.log(this);
}
现在,我希望在Parent和Child中都引用数组本身。所以:
[1,2,3].Parent(); // Would output [1,2,3];
[1,2,3].Parent.Child(); // Want it to print [1,2,3];
基本上,我希望子级的此变量引用数组而不是父函数。有见识吗?
最佳答案
您可以使Parent
成为一个获取器,为每个数组返回唯一的函数,并提供上下文:
Object.defineProperty(Array.prototype, 'parent', {
configurable: true,
get: function () {
var that = this;
function parent() {
console.log(that);
}
parent.child = function () {
console.log(that);
};
return parent;
},
});
关于javascript - 修改“this”变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45262044/