很抱歉,如果有人回答了这个问题,但我无法搜索它……我认为这是一个很难搜索的东西!
假设我有这个:
var MyPrototype = function() { this.init(); }
$.extend(MyPrototype.prototype, {
a: 5,
init: function() {
var thing = new SomeOtherClass();
thing.meth = this.meth;
// thing.meth() is called somewhere within thing;
},
meth: function() {
alert(this.a);
}
}
基本上,我正在处理另一个类,它使用自己的方法作为回调,例如我应该用我自己的功能覆盖它们。但是我需要在执行此操作时保留 this
的正确范围(我唯一关心的是 SomeOtherClass
传递给回调的内容;状态中没有任何内容)。
正如您可能想象的那样,这是行不通的,因为 thing
没有 a
属性!不过,我对 Javascript 作用域的复杂性还不够熟悉,不知道如何使 this
引用我想要的内容!
最佳答案
在这里结合其他两个答案,这样您就不必重写您的 meth 函数,我会这样做:
var me = this;
thing.meth = function() {
MyPrototype.meth.apply(me, arguments);
};
关于javascript - 在 Javascript(和 jQuery.extend)中限定 "this",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1190779/