增加计数器并动态更改依赖它的变量

时间:2018-06-18 08:59:42

标签: javascript object

如何递增计数器并期望在使用它的对象值中更改递增的计数器?

想象一下:

var pizzaOrder = {
    id: "pizza",
    counter: 0,
    sentence: this.id + this.counter // first problem is here  
    // as I am getting NaN
};

pizzaOrder.counter++;

console.log(pizzaOrder.sentence);

预期产出:

"pizza1";

4 个答案:

答案 0 :(得分:3)

您无法引用尚未完成创建的对象,但听起来您似乎想在此处使用getter:



var pizzaOrder = {
  id: "pizza",
  counter: 0,
  get sentence() {
    return this.id + this.counter;
  }
};
pizzaOrder.counter++;

console.log(pizzaOrder.sentence);




答案 1 :(得分:2)

您可以在对象内部实现使用此功能

<强>样本

var pizzaOrder = {
  id: "pizza",
  counter: 0,
  getSentence: function() {
    return this.id + this.counter;
  }
};

pizzaOrder.counter++;

console.log(pizzaOrder.getSentence());

答案 2 :(得分:0)

this只能在方法 getters / setters 中使用。你正在寻找的是一个吸气剂:

var pizzaOrder = {
  id: "pizza",
  counter: 0,
  get sentence(){
    return this.id + this.counter;
  }
};

pizzaOrder.counter++;

console.log(pizzaOrder.sentence);

答案 3 :(得分:-1)

试试这个

var pizzaOrder = {
  id : "pizza",
  counter : 0,
  sentence : function(){ return this.id+this.counter;  }
};
pizzaOrder.counter++;
console.log(pizzaOrder.sentence());