【发布时间】:2015-02-05 16:44:43
【问题描述】:
我遇到了如下代码(实际上有效),我很好奇语法发生了什么。
function timeout(a){
alert(a);
}
setTimeout('timeout(5)', 2000); //alerts 5 after two seconds
我已经看到指向函数的指针被传递给 setTimeout 以及匿名函数。在带括号的引号中传递函数是否有效?我在 MDN 上找不到任何相关信息。
【问题讨论】:
-
这是有效的,但通常被认为是一种不好的做法,因为它是 eval 的一种形式。
-
有效。这是您将具有预设参数值的函数作为回调传递的方式。不过,就像@KevinB 所说的那样,它通常不会受到重视。
-
注意:MDN 将此语法列为
var timeoutID = window.setTimeout(code, [delay]);。 -
@JonathanLonowski 错字已更正。
标签: javascript function settimeout