私は次のようなことをしてオブジェクトの状態を維持しようとしています:
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」がウィンドウを指していることが起こっています。何が起こっているのかわかりません。
私は正しい方向に進んでいますか?より良いアプローチはありますか?