javascript - 为什么在常规 IDE(如 Visual Studio 代码)上编译时 `this` 返回空对象?

标签 javascript object this

在浏览器窗口中,当我在窗口上下文中记录this时,它会给出输出:Window对象。 但是在这里,在普通的 IDE(如 Visual Studio 代码)中,当我编译它时,给我一个空对象。为什么?这是如何发生的?

  console.log(this)  // in browsers output: window
// In IDE, output: {}

function test(){
    return this
}

console.log(test())  // output is global  // Why not empty

主要问题是,当我在普通 IDE 上运行时,为什么 this 返回一个空对象?谢谢您的回答。

最佳答案

this 引用 console.log(this) 中的全局范围。对于浏览器,它是window,对于nodejs,它是Global对象。对于 VS Code,它们有空对象作为全局对象,因为它们无法实现浏览器或 NodeJS 全局对象 api 和属性。由于它是用于调试的,所以空的全局对象就足够了。

关于javascript - 为什么在常规 IDE(如 Visual Studio 代码)上编译时 `this` 返回空对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57214221/

相关文章:

ios - swift/iOS : How to use inout parameters in functions with AnyObject/Any or Pointers

javascript - getElementsByClassName 不起作用

javascript - JQuery 自动完成 - 强制选择

javascript - JavaScript 中的对象转换

javascript事件循环问题

Scala:如何创建一个允许我在调用时使用点符号的函数?

javascript - 将 function.call 与此参数一起用于函数参数

javascript - Angularjs - 交叉 Controller 工厂更新

javascript - 读取对象内部的对象为未定义

javascript - 用于多个嵌套级别数组的 Lodash keyBy