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

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

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

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

共收到 7 条回复

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

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
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册