之间是否存在差异:
window.onload = someFunction;
window.onload = someFunction();
最后的括号。他们有什么不同吗?
我们一般使用第一个!如果我们必须将一些参数传递给函数,该怎么办?我们如何使用第一个声明来做到这一点?
答案 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)
将返回包含这两个变量的函数。