可能重复:
What does “var FOO = FOO || {}” mean in Javascript?JavaScript对象创建?
我多次发现这样的JavaScript对象创建语句。
var MyObj = MyObj || {};
有人可以解释上述说法的意义吗?
为什么我们不能只创建
var MyObj = {};
感谢。
可能重复:
What does “var FOO = FOO || {}” mean in Javascript?JavaScript对象创建?
我多次发现这样的JavaScript对象创建语句。
var MyObj = MyObj || {};
有人可以解释上述说法的意义吗?
为什么我们不能只创建
var MyObj = {};
感谢。
如果MyObj
已经存在,该怎么办?
如果alreay存在..声明
var MyObj = {}
重置对象(这是坏的)
因此它通常与||
做如果它已经存在,保留不管它是什么。 ..否则创建一个新的对象。
的||
运营商说:
this || that
- >this OR that
所以,在你的榜样
myObj
是myObj
或新的对象,如果myObj
没有定义或设置为falsy值(null, 0, "", false, undefined
)
var MyObj = MyObj || {};
T帽子简单地说:“如果MyObj
已经存在并且具有真值,保留它;否则,创建新的对象。”这是在做可选参数的功能,例如常见的方式。
见MDN对logical operators页关于这一主题的更多信息。
这意味着,如果MyObj中进行评估,以假(即它是空的或未定义的)然后创建一个新的对象,它是一个简短的形式,利用这样一个事实,即如果MyObj被计算为真时被转换为布尔值(即它不是空的和定义)OR的第二部分表达不被评估
很多谢谢你想要水晶般清晰的信息:) – Ravi 2012-03-14 10:25:01
陷阱...谢谢 – Ravi 2012-03-14 10:24:40