所以问题是
之间有什么区别 window.onload = someFunctionName
与window.onload = someFunctionName()
我应该使用这个括号吗?
答案 0 :(得分:2)
这是一个很好的规范: https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onload
有几种方法可以设置它: 1. Javascript,需要将其设置为函数。 2.通过HTML标记将其设置为字符串值。
这里的例子都是有效的方法。我建议Javascript直接传递一个函数引用: http://www.w3schools.com/jsref/event_onload.asp
答案 1 :(得分:2)
window.onload = someFunctionName();
调用 someFunctionName
函数,将其返回值分配给onload
属性。
window.onload = someFunctionName;
将someFunctionName
函数分配给属性onload
。当load
事件发生时,浏览器将调用该函数。功能是对象。当你通过名字引用它们而不用调用它们时,你就是指对象。
示例:
window.onload = test();
function test() {
alert("outer");
return function(){
alert("inner");
}
}
这会发出两次警报,因为test()被调用它将警告外部并返回内部函数加载并上载它将警告内部。
,而
window.onload = test;
function test() {
alert("outer");
return function(){
alert("inner");
}
}
上面的代码只会警告外部因为内部函数返回但从未被调用。
答案 2 :(得分:1)
window.onload = someFunction;
- 为onload事件指定someFunction
window.onload = someFunction();
- 为onload事件指定someFunction的结果。
答案 3 :(得分:0)
您需要注意in Javascript a function can return another function after execution。出于这个原因,因为您没有显示任何代码,所以这两个示例都可能是正确的。
但两者之间存在差异:
window.onload = someFunctionName
将someFunctionName
本身指定为onload处理程序;
window.onload = someFunctionName()
不会分配函数someFunctionName
本身,而是分配执行someFunctionName
函数的返回结果。假设someFunctionName
本身返回一个函数,那么它可能是正确的,否则你会得到意想不到的结果。
Javascript函数是对象。使用括号时,您正在调用该函数。当您使用没有括号的函数时,您指的是函数对象(即函数本身)。
所以这取决于你在做什么......