說我有一個簡單的函數,警報消息:爲什麼這個封閉工作?
function callMessage(msg){
alert(msg);
}
現在,當我這樣稱呼它的話,它不工作。拋出錯誤「哎沒有定義」
function sayHi(){
var hey = "hi there"
setTimeout("callMessage(hey)", 1000);
}
sayHi();
但是,當我把它叫做一個匿名函數內部它的工作:
function sayHi(){
var hey = "hi there"
setTimeout(function(){callMessage(hey);}, 1000);
}
sayHi();
爲什麼是「哎」變量,當我把它裏面的唯一可見匿名函數?
我也嘗試這個; '的setTimeout( 「VAR哎= '您好'; callMessage(嘿嘿)」,1000);' – mindandmedia 2012-03-01 15:49:13
如果我是你,我會讀一些類似 - http://www.digital-web.com/articles/scope_in_javascript/ – 2012-03-01 15:49:31