如果可以的话,如果代码没有在函数中调用,是否应该使用 this 而不是 window?
this.addEventListener(...);
vs
window.addEventListener(...);
这短了 2 个字符,如果可以的话使用是否更好?
最佳答案
我建议避免“this”,除非通过 call
明确指定, apply
,或bind
。这样就不会再有任何关于 this
是什么的问题。指。而且我也喜欢总是显式声明对全局对象的访问:
(function(global, document, undefined){
global.myGlobalVar = 'foo';
})(window, document);
这样,当我在做全局性的事情时总是很清楚,代码可以更轻松地移植到非浏览器环境,如 node.js
,undefined 永远是未定义的,等等
如果您没有明确显示全局访问权限并且稍后必须尝试找到它,您将会后悔。如果您要全局注册事件处理程序(可能不是最好的主意),您肯定需要记下它。
编辑:可能应该在严格模式下提及 this
在全局范围内未定义。
关于Javascript - this 与 window,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26550092/