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

问题描述 投票:0回答:2

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

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

    shape.ShowCount = function () {
      return shape.Count;
    }
  }
javascript properties
2个回答
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


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。

© www.soinside.com 2019 - 2024. All rights reserved.