我想通過以下way-我怎樣才能調用JavaScript的匿名函數
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();
這裏訪問的匿名函數對象的成員函數的類slibing功能,問題1 -是代碼在被賦予什麼合適的時間究竟執行,意味着剛過2000毫秒,但它顯示2000年以後毫秒以下錯誤 -
Uncaught TypeError: Object [object global] has no method 'hide_member'
(anonymous function)
問題2 -的代碼是前ecuting,但它執行的代碼解析後,意味着2000毫秒而不是之後。
問題3 -相同的問題問題2
我在這裏獲得關於這3個問題的混亂。由於
FWIW:將字符串傳遞到'setTimeout'或'setInterval'幾乎永遠不是最佳實踐。 –