JavaScript:古老的代码使用“new”关键字开始简单的对象。为什么?

Jos*_*ook 5 javascript constructor

我想我对 JS 开发还是比较陌生,在对古老的 JS 代码进行一些重构时(证明:那里仍然使用 'with' 语句),我遇到了以下情况:

var result = new {
    key: 'value'
    // etc...
}
Run Code Online (Sandbox Code Playgroud)

为什么使用new关键字?这和下面有区别吗?

var result = {
    key: 'value'
    // etc...
}
Run Code Online (Sandbox Code Playgroud)

Jos*_*ook 1

在浪费时间研究这个问题并等待看看是否有人知道这些以前的开发人员在做什么之后,我决定自己回答这个问题。

从位于此处的一个单独的堆栈问题来看,这似乎有点相关:

它创建一个新对象。这个对象的类型,就是简单的对象。

因此,无论它在旧浏览器还是其他浏览器中工作,这个片段似乎都是创建新object. 现代浏览器(Chrome)在遇到这种情况时会抛出语法错误,所以如果它曾经有效,那么现在就不再有效了。