JavaScript 绑定多个函数到 window.onload 事件问题

ZhouYiYu · 2017年10月30日 · 最后由 ZhouYiYu 回复于 2017年11月13日 · 6578 次阅读

我学习 Js_dom 编程艺术这本书的时候看到以下代码:

在其中 else 部分我不是很理解:
第一:oldonload 我在定义时是变量,怎么可以直接当成方法使用?
第二:通过如图的代码将多个函数绑定到 window.onload 事件上和直接通过:
window.onload(){ 函数 1; 函数 2; }
有区别吗?

现实中应该不会这样编程吧,逻辑不清晰,代码又难看。一般都会用一个函数来统一管理吧。

JavaScript 作为弱数据类型语言,可以把 Function 赋值给变量,你可以用文中的方式或 oldonload.call()来调用

第二个问题,就是你学习方法有问题,动手敲一下就知道了

3 楼 已删除

第一:javascript 中,函数是对象,可以赋给变量的。此时,变量就是该函数,如图中的:oldonload 就是 window.onload,在变量后面添加 () 就是调用执行,如图中的 oldonload();

第二:window.onload(){ 函数 1; 函数 2; } 的写法不对吧,想说的意思是:window.onload = function(){...} ,对吗?从执行的结果来看,和 addLoadEvent 一样的感觉(只是看图中的代码,没有实际运行验证),不过用途是不同的。window.onload = function(){...} 随便在哪个页面都可以很快使用,addLoadEvent 应该多用在写比较复杂的应用时。

cysh 回复

我试了下 window.onload =function(){
方法 1;
方法 2;
}
方法 1,2 还是可以都被绑定到 onload 事件上;

doosolar 回复

可能我问问题的时候大意了。我也觉得大概是那样。谢谢回答。

doosolar 回复

回复错了

cysh 回复

我问问题的时候大意了,我第二个问题想得问的是,单独用
window.onload = function(){...}就可以绑定多个事件,
为什么还要还要写 addLoadEvent?感觉复杂化了?

ZhouYiYu 关闭了讨论。 12月07日 15:11
需要 登录 后方可回复, 如果你还没有账号请 注册新账号