为什么JavaScript中有时需要function()?

nyu*_*a7h 3 javascript jquery anonymous-function javascript-events

HTML

<button id='hello'>Click Me!</button>
Run Code Online (Sandbox Code Playgroud)

JavaScript(错误)

$('#hello').click(alert('Hello, World!'));
Run Code Online (Sandbox Code Playgroud)

JavaScript(正确)

$('#hello').click(function() {
    alert('Hello, World!');
}
Run Code Online (Sandbox Code Playgroud)

我想知道为什么第一个JS代码触发事件加载而不是点击.任何人都可以告诉我为什么function() { [code] }脚本需要正常工作?

在这个例子中,我使用了jQuery事件,但这并不是特定的,例如,我也需要将它与setTimeout一起使用.

Pab*_*dez 12

click函数需要另一个函数作为参数.

在第一种情况下,您将传递调用的结果,该结果alert('hello world');为null.

第二个只是简写:

$('#hello').click(callback);

function callback(){
  alert('hello world');
}
Run Code Online (Sandbox Code Playgroud)

  • 与示例相反,不仅仅是"速记",而是匿名函数(无fn-name)而不是一个,也没有全局(/更宽)范围. (7认同)