javascript:What';functionName()和functionName之间的区别是什么?

javascript:What';functionName()和functionName之间的区别是什么?,javascript,Javascript,我注意到你可以引用一个带括号或不带括号的函数。为什么?有什么区别 顺便说一句,我注意到这是有效的: window.onload=functionName 然而,这并不是: window.onload=functionName() 有人能解释一下为什么代码的顶行可以工作而底行不行吗?版本没有引用该函数。它调用函数并引用其返回值 鉴于此功能: function functionName() { return "I'm a function"; } // window.onload wil

我注意到你可以引用一个带括号或不带括号的函数。为什么?有什么区别

顺便说一句,我注意到这是有效的:
window.onload=functionName

然而,这并不是:
window.onload=functionName()

有人能解释一下为什么代码的顶行可以工作而底行不行吗?

版本没有引用该函数。它调用函数并引用其返回值

鉴于此功能:

function functionName() {
    return "I'm a function";
}
 // window.onload will reference the function, and invoked it when the page loads
window.onload = functionName;
这引用了以下函数:

function functionName() {
    return "I'm a function";
}
 // window.onload will reference the function, and invoked it when the page loads
window.onload = functionName;
…但这引用了返回的字符串,该字符串对
窗口不太有用。onload

 // the function is invoked immediately, so now window.onload references the
 //    string "I'm a function" that was returned
window.onload = functionName();
()
版本未引用该函数。它调用函数并引用其返回值

鉴于此功能:

function functionName() {
    return "I'm a function";
}
 // window.onload will reference the function, and invoked it when the page loads
window.onload = functionName;
这引用了以下函数:

function functionName() {
    return "I'm a function";
}
 // window.onload will reference the function, and invoked it when the page loads
window.onload = functionName;
…但这引用了返回的字符串,该字符串对
窗口不太有用。onload

 // the function is invoked immediately, so now window.onload references the
 //    string "I'm a function" that was returned
window.onload = functionName();
写入
func()
调用函数并计算其值

编写
func
只计算函数本身,而不调用它。
(就像写入
myVar
计算其值一样)

写入
func()
调用函数并计算其值

编写
func
只计算函数本身,而不调用它。

(就像编写
myVar
计算它的值一样)

在JavaScript中,函数是可重用的,这意味着它们可以像语言中的其他数据类型一样处理。例如,您可以将函数指定给变量,将其作为参数传递,从函数返回,等等

鉴于此,
functionName
仅引用函数对象,而
functionName()
调用由
functionName
引用的函数


这将分配由
functionName
引用的函数(它甚至不必是实际的函数名,它可以是分配给函数的变量-一个别名!例如,
var functionName=myOtherFunction;
-这将为
myOtherFunction
创建一个别名)

而这将调用
functionName
引用的函数并分配其结果

window.onload = functionName();

在JavaScript中,函数是独立的,这意味着它们可以像语言中的其他数据类型一样处理。例如,您可以将函数指定给变量,将其作为参数传递,从函数返回,等等

鉴于此,
functionName
仅引用函数对象,而
functionName()
调用由
functionName
引用的函数


这将分配由
functionName
引用的函数(它甚至不必是实际的函数名,它可以是分配给函数的变量-一个别名!例如,
var functionName=myOtherFunction;
-这将为
myOtherFunction
创建一个别名)

而这将调用
functionName
引用的函数并分配其结果

window.onload = functionName();

functionName()
调用函数,然后在那里调用。另一方面,
x=functionName
将函数“functionName”分配给x。从那时起,调用x()类似于调用functionName()。在window.onload的情况下,当页面加载时,浏览器将调用window.onload()。

functionName()
调用函数,然后在那里调用。另一方面,
x=functionName
将函数“functionName”分配给x。从那时起,调用x()类似于调用functionName()。对于window.onload,当页面加载时,浏览器将调用window.onload()。

functionName
是保存函数引用的变量的名称。
functionName()
是对该变量中函数的调用。

functionName
是包含函数引用的变量的名称。
functionName()
是对该变量中函数的调用