2015-01-14 28 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只發生在包含錯誤的代碼行運行時(也許它永遠不會)。 –

相關問題