2013-11-25 64 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