Javascript对象创建?

时间:2012-03-14 10:18:14

标签: javascript

  

可能重复:
  What does “var FOO = FOO || {}” mean in Javascript?

我在javascript对象创建中反复找到这种语句。

 var MyObj = MyObj || {};

有人可以解释上述陈述的重要性吗?

为什么我们不能创建

var MyObj = {};

感谢。

3 个答案:

答案 0 :(得分:2)

如果MyObj已存在,该怎么办?

如果它存在......声明

var MyObj = {}重置对象(这是坏的)

因此通常使用||

完成

如果它已经存在,保留它的任何内容......否则创建一个新对象。

||运营商说:

this || that - > this OR that

所以在你的例子中

如果myObj未定义或设置为假值(myObj),则

myObjnull, 0, "", false, undefined或新对象

答案 1 :(得分:2)

var MyObj = MyObj || {};

简单地说“如果MyObj已经存在且具有真值,请保留它;否则,创建一个新对象”。例如,这是为函数执行可选参数的常用方法。

有关此主题的详情,请参阅logical operators上的MDN页面。

答案 2 :(得分:0)

这意味着如果MyObj被评估为false(即它为null或未定义),则创建一个新对象。它是一个简短的形式,它利用了这样一个事实:如果MyObj在被转换为布尔值时被评估为真(即它不是空的并且被定义),则不会评估OR表达式的第二部分。