我在模块模式中重构了大约600行javascript。这是以前post的开头: 我承认匿名方法的概念......和执行......但不是范围的概念......即。全球和窗户的作用。
window.onload=initialize_page;
(function (global) {
global['test'] = 'test';
function initialize_page()
{
/* fill here */
}
})(window);
我可以将window.onload = initialize_page放入我的模块模式吗?还是需要把它放在外面?有人可以解释访问的工作原理吗?
编辑1:每个答案
(function () {
addEventListener('load', initialize_page);
function initialize_page()
{
alert ("hi");
}
})();
答案 0 :(得分:1)
这是全球性的。不要那样触摸它,你将覆盖任何试图分配负载处理程序的其他代码。
使用addEventListener
(或attachEvent
代替旧版IE)。有很多libraries来抽象功能。
答案 1 :(得分:0)
我不是专家,但我认为window.onload
是一个被调用的函数,因此您将其重置为另一个函数(您创建的函数)。你在那里用它作为一个宏。由于initialize_page
在您传递时不存在,因此它可能会以window.onload
传递给null
。