相关疑难解决方法(0)

函数调用和函数引用有什么区别?

我有以下功能

function hello() {
 alert("hi!");
}
Run Code Online (Sandbox Code Playgroud)

拿这段代码:

var elem = document.getElementById("btn");
elem.onclick = hello;
Run Code Online (Sandbox Code Playgroud)

我的问题可能有点难以理解,所以请耐心看看:这段代码与普通调用有什么区别,或者是什么使得这段代码需要引用函数变量而不是常规调用?(hello();)

我怎么知道我应该在哪里提供函数的引用,以及什么时候我应该实际调用它?

javascript reference function call

24
推荐指数
3
解决办法
6144
查看次数

带/不带括号的 JavaScript 函数调用

代码_0:

foo不带括号调用)

function foo(){
    console.log('hello world');
}

setTimeout(foo, 2000);
Run Code Online (Sandbox Code Playgroud)

这是如何code_0执行的:

start -> wait for 2 seconds -> 'hello world' displayed -> end
Run Code Online (Sandbox Code Playgroud)

代码_1:

foo用括号调用)

function foo(){
    console.log('hello world');
}

setTimeout(foo(), 2000);
Run Code Online (Sandbox Code Playgroud)

这就是code_1执行的方式:

start -> 'hello world' displayed immediately -> wait for 2 seconds -> end
Run Code Online (Sandbox Code Playgroud)

当我用括号调用函数时,为什么程序的执行会如此不同?其根本机制是什么?

抱歉,如果这个问题太琐碎了。但我找不到任何针对初学者的 javascript 教程的解释。

javascript parameter-passing function-calls parentheses

4
推荐指数
1
解决办法
4609
查看次数