在JavaScript中调用没有括号的函数

时间:2014-05-14 03:51:03

标签: javascript

我们使用()来调用函数,但是当我们在javascript中的onclick事件中附加函数时,我很困惑为什么我们只使用函数名。

function a(){
alert(0)
}

document.getElementById('btn').onclick=a


<input value="click" type="button" id="btn" />

3 个答案:

答案 0 :(得分:8)

因为a()执行该功能,而a是对该功能的引用。如果你console.log(a),你会看到函数的代码

答案 1 :(得分:4)

因为我们当时不想调用该函数,所以我们只想为该属性分配一个引用,以便以后可以调用它 / em>在事件发生时开启。

这将不正确

document.getElementById('btn').onclick = a();

它会立即调用函数 并将返回值赋给onclick,即undefined。所以当事件发生时什么都不会发生。

答案 2 :(得分:0)

var a = function () {
    alert(0);
};

document.getElementById('btn').onclick = a

所以你可以按上述方法调用函数。将函数赋值给变量并从任何地方调用

DEMO