好的,我之前认为我理解了这个问题(不是故意搞笑),但显然并没有。
var Constructor = function () {
var internalFunction = function () {
return this === window;
};
this.myMethod = function () {
alert(internalFunction());
};
};
var myObj = new Constructor();
myObj.myMethod();
这会弹出 true
。为什么内部函数不能将 this
视为对象?相反,我必须在 myMethod
中使用 alert(internalFunction.call(this));
。
编辑:我想要一个解释为什么会分配这样的 this
,而不是像 var self = this;
等变通方法。如果没有表达清楚,对不起。
that
。我感到受到了背叛。 - hugomgfunction Note() { var note = this;
我认为这是一种非常易于阅读的约定。 - Nathan MacInnes