构造函数形状的shape.count属性

时间:2018-02-26 14:50:11

标签: javascript properties

任何人都可以解释一下此代码中的shape.count = ++shape.count || 1;是什么。

function shape(shapeName){
    this.ShapeName = shapeName;
    shape.Count = ++shape.Count || 1;

    shape.ShowCount = function () {
      return shape.Count;
    }
  }

2 个答案:

答案 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 || bb等于b的运营商。在您的情况下,由于shape.Count已经酉化,shapeCount + 1将为NaN一个假值,因此它将在第一次正确初始化为1。