什么是var x = x
这个问题在这里已经有了答案:
||
是逻辑OR
。
表达方式
var x = x OR {};
应该变得更明显了。
如果x
有一个虚假值(如null
, undefined
, 0
, ""
),我们将x
赋给一个空对象{}
,否则只保留当前值。 这个长版本看起来像
var x = x ? x : {};
如果x
未定义(或null或任何其他false
值),则它变为空对象。
一个人不应该写“var x = x || {};” 本身。
这与“var x = {}”不相同的唯一情况;“ 是当x在先前在相同范围内初始化时。 这是不道德的。 注意:
function() {
x = {foo:"bar"};
var x = x || {};
}
是一样的,只是比较混乱,
function() {
var x = {foo:"bar"};
x = x || {};
}
在任何情况下,全球范围内都没有提及符号“x”的值。
这个表达式是合法的懒惰属性初始化习语的混淆变体:
function( foo ) {
foo.x = foo.x || {};
foo.x.y = "something";
}
链接地址: http://www.djcxy.com/p/95275.html
上一篇: What does var x = x