私はこのコードを持っています(JSFiddle)
var OBJ = function(){
var privateVar = 23;
var self = this;
return {
thePrivateVar : function() {
return privateVar;
},
thePrivateVarTimeout : function() {
setTimeout(function() { alert(self.thePrivateVar()); } , 10);
}
}
}();
alert(OBJ.thePrivateVar());
OBJ.thePrivateVarTimeout();
これは私が抱えている実際の問題を抽象化したものです。
OBJ.thePrivateVarTimeout()
つまり、呼び出しが待機10
してからalert
23(他の公開されたメソッドを介してアクセスするようにしたい)を使用することを期待します。
ただしself
、正しく設定されていないようです。設定していると、関数への参照self = this
ではなく、グローバルオブジェクトへの参照であるように見えます。this
どうしてこれなの?
thePrivateVarTimeout
パブリックメソッドに他のパブリックメソッドを呼び出させるにはどうすればよいthePrivateVar
ですか?