Javascript - this 与 window

标签 javascript syntax

如果可以的话,如果代码没有在函数中调用,是否应该使用 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/

相关文章:

Javascript、getElementById 和样式不起作用 : Uncaught TypeError: Cannot read property 'style' of null

javascript - Chrome扩展程序中是否有内存限制chrome.storage.sync.set

c - 基于变量初始化状态的逻辑参数

javascript - "use strict"在 JavaScript 中做了什么,背后的原因是什么?

javascript - 无法在 JavaScript 中访问 c​​ookie

c++ - 将另一个函数作为参数的 C 函数的替代语法

c++ - C++ 中的 for-each-loop 用于二维数组

javascript - RobotFramework强制停止加载网页

javascript - 如何使用 Sequelize 显示来自 Google map 地址的内容?

javascript - 测试与 Jasmine 异步的 requireJS 方法