为什么内置函数不适用于Javascript事件?
document.getElementById('test').onchange = alert("testing");
这不起作用,并立即触发。
相反,我必须将内置函数包装在函数中以使其工作:
document.getElementById('test').onchange = function() { alert("testing"); }
为什么会这样?
答案 0 :(得分:4)
区别在于传递函数句柄与调用函数。
当你做alert()时,你正在调用该函数,而不是传递它(技术上你传递函数的结果)。
在第二种情况下,您不是在调用函数,而是定义一个新函数并返回它。