window.onload = init();有什么不同?和window.onload = init;

And*_*ndy 9 javascript scripting

根据我收集的内容,前者将函数return语句的实际值分配给onload属性,而后者分配实际函数,并在窗口加载后运行.但我仍然不确定.感谢任何可以详细说明的人.

Ada*_*kis 12

window.onload = init();
Run Code Online (Sandbox Code Playgroud)

将onload事件分配给init函数执行时返回的内容. init将执行立即,(比如,现在,不是当窗口完成装载),结果将被分配到window.onload.您不太可能想要这个,但以下内容是有效的:

function init() {
   var world = "World!";
   return function () {
      alert("Hello " + world);
   };
}

window.onload = init();
Run Code Online (Sandbox Code Playgroud)
window.onload = init;
Run Code Online (Sandbox Code Playgroud)

将onload事件分配给函数init.当onload事件触发时,将运行init函数.

function init() {
   var world = "World!";
   alert("Hello " + world);
}

window.onload = init;
Run Code Online (Sandbox Code Playgroud)


Rob*_*obG 5

window.onload = foo;
Run Code Online (Sandbox Code Playgroud)

foo的值赋给window 对象的 onload 属性。

window.onload = foo();
Run Code Online (Sandbox Code Playgroud)

将调用foo()返回的值赋给window 对象的 onload 属性。该值是否来自 return 语句取决于foo,但它返回一个函数(需要 return 语句)是有意义的。

当 load 事件发生时,如果window.onload的值是一个函数引用,那么 window 的事件处理程序就会调用它。