这是生产代码所以我无法展示它,但这是它的要点:
function constructorHere() {
/ * js code * /
};
constructorHere.prototype.functionHere = function () {
this.blah = 1; // 'this' needs to refer to constructorHere, not the caller context
/ * more js code * /
};
我不知道如何让它引用正确的上下文。它似乎在Chrome,Firefox和Safari中运行良好,但在IE中却不行。我尝过像
这样的东西function constructorHere() {
constructorHere._this = this; // or this._this = this;
/ * rest of js code * /
};
constructorHere.prototype.functionHere = function() {
constructorHere._this = ...; // problem: constructor._this would
// always be the latest instance
};
和相同想法的一些变体,但当然实例只是最新的实例。此时我唯一的选择是将所有函数声明移动到构造函数中吗?谢谢!