任何人都可以在此代码中解释什么是shape.count = ++shape.count || 1;
。
function shape(shapeName){
this.ShapeName = shapeName;
shape.Count = ++shape.Count || 1;
shape.ShowCount = function () {
return shape.Count;
}
}
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
这是非常奇怪的代码。你在这里使用预增量,所以++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。