好的,这看起来很简单,但我无法让它工作。我需要在一个对象中组合变量。像这样的东西:
var i = {
a: 1,
b: " sheep",
c: this.a + this.b
}
这样以后我可以做类似的事情:
i.a = 3;
console.log(i.c);
并获得“3只羊”。
这只是愚蠢吗?或者最接近它的东西是什么?
好的,这看起来很简单,但我无法让它工作。我需要在一个对象中组合变量。像这样的东西:
var i = {
a: 1,
b: " sheep",
c: this.a + this.b
}
这样以后我可以做类似的事情:
i.a = 3;
console.log(i.c);
并获得“3只羊”。
这只是愚蠢吗?或者最接近它的东西是什么?
使用一个函数。
var i = {
a: 1,
b: " sheep",
c: function () {
return this.a + this.b;
}
}
i.a = 3;
console.log(i.c());
这看起来像它,但无论如何要避免函数调用()。我见过 get 和 set 在对象中使用。这是被广泛使用的东西吗?
当然,您可以使用 getter,但它们在 IE <9 中不起作用(而上面的代码可以),并且由于它依赖于全新的语言语法,因此无法对其进行填充。
var i = {
a: 1,
b: " sheep",
get c() {
return this.a + this.b;
}
}
i.a = 3;
console.log(i.c);
仅当您这样做时,才有可能在对象文字中:
var i = {
a: 1,
b: " sheep",
c: function() { return this.a + this.b; }
};
console.log( i.c() );
var i = {
a: 1,
b: " sheep",
c: function () { return this.a + this.b }
}
i.a = 3;
console.log(i.c());