JavaScript this 理解

在JavaScript中,如果 this 是在全局环境中定义的,默认情况下 this 指向全局对象。对于浏览器来说,全局对象是 window 对象。它的作用域是全局的。严格模式不会修改全局环境的 this。无论严格模式还是非严格模式,this的行为是一样的。

对于Node.js来说,它没有 window 对象。在 Node.js 中全局对象是名为 global 的特殊对象。也就是说,全局作用域中的 this 指向这个 global 对象。好吧,大多数情况下如此。只有在Node.js自身内部才是如此,我们可以测试一下,打开控制台然后输入 node。

对于JavaScript的全局函数来说,模式很重要。这里的全局函数指的是在全局作用域声明的函数,不是在对象或类中定义的函数。如果是在非严格模式下,this会指向全局对象,对于浏览器来说是 window 对象。

对象的方法和 “this”。假设你在一个对象内部的方法中使用this。在这种情况下,this的值将指向声明该方法的对象。这与JavaScript模式无关。