次の方法で、匿名関数でオブジェクトのメンバー関数にアクセスしようとしています-
function a()
{
this.memb = 10;
}
a.prototype.hide_member = function(id){
alert(id);
}
a.prototype.show_member = function(){
setTimeout('this.hide_member(this.memb)', 2000); //Problem 1
setTimeout(this.hide_member(this.memb), 2000); //Problem 2
setTimeout(alert(this.memb), 2000); //Problem 3
this.memb++;
}
var obj = new a();
obj.show_member();
ここで、問題 1 -与えられた正確なタイミングでコードが実行され、2000 ミリ秒の直後を意味しますが、2000 ミリ秒後に次のエラーが表示されます -
Uncaught TypeError: Object [object global] has no method 'hide_member'
(anonymous function)
問題 2 -コードは実行されていますが、コードが解析された直後に実行されています。つまり、2000 ミリ秒後ではありません。
問題 3 -問題 2 と同じ問題
ここで、これら 3 つの問題について混乱しています。ありがとう