任何人都可以解释一下此代码中的shape.count = ++shape.count || 1;
是什么。
function shape(shapeName){
this.ShapeName = shapeName;
shape.Count = ++shape.Count || 1;
shape.ShowCount = function () {
return shape.Count;
}
}
答案 0 :(得分:0)
shape.count = ++shape.count || 1;
这将评估shape.count是否未定义或小于1它将shape.count分配给1,如果定义了shape.count,则它将增加它并分配给它自己。
有关运营商的更多详情,请参阅
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Expressions_and_Operators
答案 1 :(得分:0)
这是非常奇怪的代码。您在此处使用预增量,因此++shape.Count
的值为shape.Count + 1
(并将shape.Count
的值更新为shape.Count + 1
)。
当你在该声明中指定shape.Count时,这是无用的,因此它可能与
相同shape.Count = (shape.Count + 1) || 1;
如果||
是假值,则a || b
是b
等于b
的运营商。在您的情况下,由于shape.Count已经酉化,shapeCount + 1
将为NaN
一个假值,因此它将在第一次正确初始化为1。