2013-11-25 155 views
0

我所見過的創建下面的對象,這種類型創建對象實際上是什麼?創建javascript對象的最佳方式

var myApp = myApp || {}; 

我創建對象這樣

var myApp={property:"value",method:function(){}}; 

誰能告訴我這兩個類型之間的區別。

回答

2

如果它已經存在,並且是在不熟悉的名稱空間或全局變量工作時有用的第一個例子不會取代變量myApp。創建後您必須指定myApp的屬性。

第二個示例將始終創建myApp的新版本,並允許您在創建過程中指定其屬性。它將覆蓋已命名爲myApp的任何其他變量。

這兩個示例都創建對象的「類型」 - 實際上只有一種類型的對象。使對象彼此不同的是他們擁有的屬性。

+0

th @ks @Elliot Bonneville – Online

+0

另請注意,在第一個示例中,如果'myApp'是一個對象,那麼它的行爲就像一個對象。但是,如果它是'真',任何數字,但0或字符串,它會表現奇怪。基本上,'myApp'可以是任何事實,但不是實際的對象。 –

1

第一個示例如果它已經有一個真值,則爲其自身賦值,否則賦予一個沒有屬性的對象。

第二個示例爲對象分配屬性。

+0

thnks @Quesntin – Online

+0

嗨,@quentin,如果已經有一個同名的對象存在,那麼第一個例子會發生什麼。?顯示它將分配屬性n我爲該對象寫入的方法。?你可以詳細說明這個 – Online

+0

然後它將具有真正的價值,並將自己的現有值分配,而不是用一個新的對象覆蓋它。 – Quentin