2

有没有区别:

  1. window.onload = someFunction;

  2. window.onload = someFunction();

最后的括号。他们有什么不同吗?

我们一般用第一个!如果我们必须向函数传递一些参数怎么办。我们将如何使用第一个语句来做到这一点?

4

5 回答 5

7

如另外解释的,第一种形式

window.onload = someFunction 

只需将“onload”变量设置为等于“someFunction”函数;当页面完成加载时,调用此函数。

另一种形式:

window.onload = someFunction()

将“onload”变量设置为调用 someFunction 的结果。除非“someFunction”本身返回一个函数,否则这可能不是您想要做的。

默认情况下,使用单个“事件”参数调用 onload 函数。如果你想传递参数,你可以这样做:

window.onload = function (event) {
  someFunction(someArg, someOtherArg)
}
于 2013-03-20T14:42:50.940 回答
3

您的第二条语句将结果分配给someFunction()to window.onload

如果要添加参数,可以执行以下操作:

window.onload = function () {
    someFunction(parameter);
};
于 2013-03-20T14:40:12.050 回答
2

window.onload = someFunction;将函数分配给onload

window.onload = someFunction(); 调用一个函数并将其返回值分配给onload. (除非该函数的返回值是另一个函数,否则这是不可取的)。

如果我们必须将一些参数传递给函数怎么办

通常你定义一个新函数,除了用一些参数调用原始函数之外什么都不做,然后你将新函数分配给事件处理程序。

于 2013-03-20T14:36:46.533 回答
1

如果你使用

window.onload = someFunction;

在 window.onload 上调用了一个名为 someFunction 的函数

如果你使用

window.onload = someFunction();

someFunction() 运行并将结果分配给 window.onload

于 2013-03-20T14:37:32.140 回答
0

是的。如果你把window.onload = someFunction()它预期的结果someFunction()是另一个函数。这可用于包装函数或传递参数。例如:

window.onload = myFunction(arg1, arg2)

myFunction(arg1, arg2)预计会返回一些包含这两个变量的函数。

于 2013-03-20T14:38:58.933 回答