JavaScript的! window.onload = someFunction和window.onload = someFunction()

时间:2013-03-20 14:36:02

标签: javascript

之间是否存在差异:

  1. window.onload = someFunction;

  2. window.onload = someFunction();

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

    我们一般使用第一个!如果我们必须将一些参数传递给函数,该怎么办?我们如何使用第一个声明来做到这一点?

5 个答案:

答案 0 :(得分:7)

如另有说明,第一种形式

window.onload = someFunction 

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

另一种形式:

window.onload = someFunction()

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

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

window.onload = function (event) {
  someFunction(someArg, someOtherArg)
}

答案 1 :(得分:2)

window.onload = someFunction;onload分配一个函数。

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

  

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

,该怎么办?

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

答案 2 :(得分:2)

您的第二个陈述将someFunction()结果分配给window.onload

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

window.onload = function () {
    someFunction(parameter);
};

答案 3 :(得分:1)

如果您使用

window.onload = someFunction;

在window.onload

上调用名为someFunction的函数

如果您使用

window.onload = someFunction();

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

答案 4 :(得分:0)

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

window.onload = myFunction(arg1, arg2)

myFunction(arg1, arg2)将返回包含这两个变量的函数。