从其功能设置对象属性的值不起作用

时间:2015-08-13 14:08:29

标签: javascript

我试图在每次调用时使用new_Color.next()以数组顺序返回不同的颜色。但它总是返回blue。我错了什么?

var new_Color = {
    index: 0,
    colors: ['blue', 'lightblue', 'darkblue'],
    next: function() {
        this.index = this.index + 1 < this.colors.length? 0: this.index + 1;
        return this.colors[this.index];
    }
};

提前致谢。

1 个答案:

答案 0 :(得分:3)

您始终将index重置为0,因为(0) + 1小于length。翻转比较运算符,并将其设为length - 1

var new_Color = {
    index: 0,
    colors: ['blue', 'lightblue', 'darkblue'],
    next: function() {
        //                          v right here
        this.index = this.index + 1 > this.colors.length - 1 ? 0 : this.index + 1;
        return this.colors[this.index];
    }
};

如果您想从blue开始,请创建初始索引-1