我一直在想这个问题。
如果为主体卸载定义了一个函数,并且我使用 JavaScript 执行类似 document.unload= function()
的操作,那么函数的新定义是否与上一个定义链接,或者覆盖是吗?
这种行为对于浏览器是不同的,还是在所有浏览器中都是一样的? 如果不同,那为什么?
有人可以解释一下吗?
最佳答案
如果您只是为该属性分配一个函数,那么您将覆盖已有的任何内容。
window.foo = 1;
window.foo = 2;
Foo 现在是 2,如果您尝试阅读它,您不会期望它是 1 然后 2 的链。仅仅因为浏览器查看该属性并尝试在事件发生时在那里运行函数并不会改变这一点。
您可以按照以下方式做一些事情:
window.foo = aFunction;
oldFunc = window.foo;
window.foo = function () { oldFunc(); anotherFunc(); }
但我建议使用 addEventListener 和 friend 。由于我们必须支持 Internet Explorer 并且必须处理 multiple event models我建议使用任何优秀的 JS 库(例如 YUI 或 jQuery)提供的抽象层。
关于javascript - JavaScript 中的 document.unload 覆盖或链接最后一个定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5308280/