【发布时间】:2014-12-17 20:55:58
【问题描述】:
我可能在这里误解了一些东西,但是为什么我的this / self 总是将整个 Window 对象输出到控制台中?
var myViewModel = function() {
var self = this;
console.log('My viewModel');
console.log(self);
}();
这会导致以下控制台输出
我完全误解了this 对象吗?
【问题讨论】:
-
在这种情况下,通常 self 是最后一个实例化的对象,您将其设置为
this,因此记录self将记录this的内容 -
我刚刚意识到我一直在使用
var blah = function() {},而不是function blah() {}。第二个给了我预期的结果!啊。 -
不,问题是你在最后一行有
()。它立即调用函数并将返回值(undefined)分配给myViewModel。