2013-08-31 79 views
0

下面兩個聲明有什麼區別?下面兩個聲明有什麼區別?

var person={firstname:"John",lastname:"Doe",id:3423}; 

var person=new Object(); 
person.firstname="John"; 
person.lastname="Doe"; 
person.id=3423; 

所以人是一個變量或對象?

+1

'那麼人是變量還是對象? - 是的。 –

+0

可能有一個小的差異:首先可能會更快,這取決於JavaScript引擎的智能程度。 (一個完全聰明的編譯器都會有相同的時間)。因爲第二種方法1)我們一個接一個地創建3個屬性,2)每次允許這樣的歸屬時都必須進行檢查。 – GameAlchemist

回答

3

對於結果對象,兩種方法的結果沒有差異。它們都在原型鏈中創建了一個帶有Object.prototype的普通對象,並且您定義的屬性將直接位於該對象上。

在這兩種情況下,person都是一個變量,它包含對對象的引用。