我在javascript对象创建中反复找到这种语句。
var MyObj = MyObj || {};
有人可以解释上述陈述的重要性吗?
为什么我们不能创建
var MyObj = {};
感谢。
答案 0 :(得分:2)
如果MyObj
已存在,该怎么办?
如果它存在......声明
var MyObj = {}
重置对象(这是坏的)
因此通常使用||
如果它已经存在,保留它的任何内容......否则创建一个新对象。
||
运营商说:
this || that
- > this OR that
所以在你的例子中
如果myObj
未定义或设置为假值(myObj
),则 myObj
为null, 0, "", false, undefined
或新对象
答案 1 :(得分:2)
var MyObj = MyObj || {};
简单地说“如果MyObj
已经存在且具有真值,请保留它;否则,创建一个新对象”。例如,这是为函数执行可选参数的常用方法。
有关此主题的详情,请参阅logical operators上的MDN页面。
答案 2 :(得分:0)
这意味着如果MyObj被评估为false(即它为null或未定义),则创建一个新对象。它是一个简短的形式,它利用了这样一个事实:如果MyObj在被转换为布尔值时被评估为真(即它不是空的并且被定义),则不会评估OR表达式的第二部分。