我正在尝试通过执行以下操作来维护对象的状态:
obj = function() {
this.foo = undefined;
this.changeState = function () {
(function () { this.foo = "bar" })(); // This is contrived, but same idea.
};
};
当我调用 changeState 方法时,我想将实例变量 foo 设置为“bar”。
例如:
o = new obj();
o.changeState();
alert(o.foo); // This should say "bar"
据我所知,正在发生的事情是内部匿名函数中的“this”指向 window. 我不确定发生了什么事。
我在正确的轨道上吗?有更好的方法吗?