2015-01-14 25 views
4

我想我还是比较新的JS开发,并在一些古代JS代码重构(证明:仍然使用'with'语句在那里),我碰到以下内容:JavaScript:古代码使用“新”关键字启动简单对象。为什么?

var result = new { 
    key: 'value' 
    // etc... 
} 

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

var result = { 
    key: 'value' 
    // etc... 
} 
+1

'new'关键字用于导致错误。至少现在会。不知道是早些时候支持。 –

+0

_with_ ==古代如何? (新的可能是这里的一个错字) – dandavis

+0

我不会引用'with'关键字作为代码是旧的标志。虽然我通常不推荐使用它,但有一些框架(即使用模板的框架,如KendoUI)可以很好地利用它。 –

回答

0

研究这个和观望,如果任何人有任何线索,这些以前的开发者在做什么,我已经决定要回答它自己的时间浪费了。

从一个单独的协议栈的问题,位于here,这似乎有点相关:

它创建了一个新的对象。这个对象的类型,仅仅是对象。

因此,无论是在旧的浏览器或任何工作,它出现这个片断是创建一个新的object的脱节方式。现代浏览器(Chrome)在遇到这种情况时会抛出语法错误,所以如果它有效,现在不是。

+0

这是一个TypeError,而不是语法错误。不同的是,如果你的代码包含语法错误,它们都不会运行,而TypeError只发生在包含错误的代码行运行时(也许它永远不会)。 –

相关问题