为什么<车身负载=“;fn()">使用函数调用,但是window.onload=fn;使用处理程序函

Why does <body onload="fn();"> use a function call, but window.onload=fn; use a handler function?

本文关键字:fn 但是 函数调用 onload 程序 处理 window lt 负载 quot 为什么      更新时间:2023-09-26

我读过关于技术差异的文章,比如哪个选项等待加载适当的元素,但在大多数情况下,我知道它们都有类似的目的。

我想知道需要调用函数(比如initialize();)的基本原理在编写window.onload=myFunction.(MDN称其为处理程序函数)时使用,但仅使用函数名。在这里,我指的是缺少括号的区别。

这两种方法都有优势吗?技术原因?

这是HTML标记和Javascript使用的文档对象模型之间的区别。运行时:

window.onload = fn;

也就是说,将属性"onload"设置为该函数对象,用于处理事件。如果另一方面,你写道:

window.onload = fn();

这将立即执行fn,并将onload属性设置为函数返回的任何值(如果函数fn返回另一个函数,这也可以工作)。

onload属性包含要执行的Javascript代码字符串
它不需要是一个函数调用;它可以是任意的语句。

onload属性只包含一个函数。