如何递增计数器并期望在使用它的对象值中更改递增的计数器?
想象一下:
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";
答案 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());