假设我有一个简单的函数,它可以弹出一条消息:
function callMessage(msg){
alert(msg);
}
现在当我这样调用它时,它不起作用。会抛出错误"hey未定义"。
function sayHi(){
var hey = "hi there"
setTimeout("callMessage(hey)", 1000);
}
sayHi();
但是当我在匿名函数内调用它时,它可以正常工作:
function sayHi(){
var hey = "hi there"
setTimeout(function(){callMessage(hey);}, 1000);
}
sayHi();
为什么只有当我将“hey”变量放在匿名函数内部时才能看到它?
setTimeout("var hey = 'hi there'; callMessage(hey)", 1000);
- mindandmedia