说我有一个简单的函数,警报消息:为什么这个封闭工作?
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