在声明构造函数之外的函数时,在javascript中解决正确的此上下文

时间:2018-01-15 16:53:51

标签: javascript angular

这是生产代码所以我无法展示它,但这是它的要点:

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
};

和相同想法的一些变体,但当然实例只是最新的实例。此时我唯一的选择是将所有函数声明移动到构造函数中吗?谢谢!

0 个答案:

没有答案