Javascript 为什么myCheckBox.onclick=myFunction();工作不正常,但myCheckBox.onclick=function(){myFunction();}是否正常?
我正在尝试做一些简单的事情,有3个复选框,当我点击其中一个时,我想取消选择其余的复选框。我还想使用我为此编写的方法,以便在单击时使用 当我这样做的时候Javascript 为什么myCheckBox.onclick=myFunction();工作不正常,但myCheckBox.onclick=function(){myFunction();}是否正常?,javascript,Javascript,我正在尝试做一些简单的事情,有3个复选框,当我点击其中一个时,我想取消选择其余的复选框。我还想使用我为此编写的方法,以便在单击时使用 当我这样做的时候 myCheckBox.onclick = myMethod(); 当页面加载时,它只运行一次,通常无法正常工作 但当我这么做的时候 myCheckBox.onclick = function(){ myMethod(); }; 一切按计划进行。为什么它是这样工作的?您需要这样做 myCheckBox.onclick = myMetho
myCheckBox.onclick = myMethod();
当页面加载时,它只运行一次,通常无法正常工作
但当我这么做的时候
myCheckBox.onclick = function(){
myMethod();
};
一切按计划进行。为什么它是这样工作的?您需要这样做
myCheckBox.onclick = myMethod;
将方法分配给事件
当您运行myMethod()时,它会将myMethod返回的任何内容应用到onclick事件侦听器中,您需要使用:
myCheckBox.onclick = myMethod;
myCheckBox.onclick=myMethod代码>这是指向函数引用的方式。通过在末尾使用()
,函数将执行,onclick
将接收其返回值。当您在类似myMethod()
的函数后添加参数时,它将执行函数并使用返回值。因此,假设myMethod()
返回“Hello”
,则行myCheckBox.onclick=myMethod()
相当于myCheckBox.onclick=“hello”
。相反,您不希望执行函数,而是希望指向函数的定义,即myCheckBox.onclick=myMethod
。您的第二个示例指出了一个新的匿名函数的定义,该函数执行myMethod()
。非常感谢,我花了很多时间在它上面,我不愿意承认