我希望它有效,但它只适用于Chrome,在Firefox和IE中,它什么都不提醒,这是我的代码:
var name;
function say() {
alert(name);
}
function execute(someFunction, value) {
name = value;
someFunction;
}
execute(say(), "Hello");
答案 0 :(得分:3)
代码显然是错误的:
execute(say(), "Hello");
这会将say()
的返回值传递给execute
。但是,您希望传递函数,因此请使用execute(say, "Hello");
并在该函数中使用someFunction()
来执行它。
即使它可能/希望不再重要,代码 在Firefox中工作 - 它会undefined
警告say()
,因为execute()
之前执行undefined
运行。同样的事情发生在Chrome中 - 但是,它使用空警告框而不是显示字符串{{1}},因为显然chrome(或至少它的开发者控制台)有一个全局变量?name?默认情况下定义为空字符串。