javascript – onload = function vs window.onload = function

前端之家收集整理的这篇文章主要介绍了javascript – onload = function vs window.onload = function前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

使用window.onload = function(){}是否有任何实际优势; over onload = function(){}; ?我知道window.onload看起来更合适,但这不是我选择它的好理由,特别是它比onload更长/更慢.

经过一些耗时的搜索和测试,这2个是唯一的2个浏览器兼容方法,测试(在相对较新的Chrome / Firefox版本和IE从5.5到9)包括

@H_403_7@window.onload // works in all tested browsers onload // works in all tested browsers,faster than window.onload document.onreadystatechange // works twice in some browsers,once in some others,could be confusing window.onpageshow // works in chrome and firefox,not in IE window.onreadystatechange // doesn't work document.onload // doesn't work document.onpageshow // doesn't work window.document.onload // doesn't work

我能找到这篇文章,这是我提出的最适合的文章之一:

http://perfectionkills.com/onloadfunction-considered-harmful/

它声明ECMA-262 5th edition的严格模式(“use strict”;我不打算在我的项目中使用)可能最终导致某些浏览器与onload不兼容(Firefox和Opera中的ReferenceError).

所以问题是:除了“use strict”之外,使用直接onload赋值是否有任何真正的缺点?一?我需要的信息不是一些无法解释的意见.

谢谢

注意:我在问这个问题之前做过搜索(我知道这看起来有点经典),我能找到的最接近的问题是关于window.onload vs< body onload =“”&gt ;,window.onload的其他替代方法等. 编辑:我已经创建了这个测试用例onload vs window.onload,它证明了onload的速度有多快.我真的会采用这种微观优化,为什么不呢?它们有时可能很酷.

最佳答案
两者都是相同的…当你自己调用onload然后javascript假定它是一个全局属性,它是window对象的属性.所以基本上如果你没有特别说它是window.onload那么javascript引擎会为你做.

@H_403_7@if (onload === window.onload) { alert("it's the same"); //true }

因此,只要您不关心严格模式,您就不应该对现代浏览器有任何问题.但是,使用完整的window.onload而不仅仅是onload被认为更好.没有输入额外的7个字符,你获得的收益并不高.

原文链接:https://www.f2er.com/js/429781.html

猜你在找的JavaScript相关文章