2014-01-14 59 views
0

我見過的代碼,沿調用對象時沒有使用new做什麼?

Object(existingObject).myMethod(); 

行雲這是不是直接調用existingObject.myMethod()不同?更一般地說,Object(x)是做什麼的?

+0

它創建一個對象包裝 – adeneo

+2

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object – adeneo

回答

2

Object構造函數爲給定的值創建對象包裝。 如果該值爲空或未定義,它將創建並返回一個空的對象,否則,它將返回一個類型對象 到給定值。如果該值已經是對象,則返回值爲 。

對於你的情況,由於該值已經是一個對象,它只會返回值existingObject。所以,不,與直接撥打existingObject.myMethod沒有什麼不同。

Documentation

+1

你應該提供一個鏈接到報價。特別是,「對象構造函數創建...」應該是「當作爲函數調用時,對象構造函數創建...」以更緊密地與[ECMA-262]對齊(http://ecma-international.org/ecma -262/5.1 /#仲丁基15.2.1.1)。 – RobG

+0

我可以挖掘RobG,感謝您的提示:) – Hacknightly

相關問題