好的,这看起来很简单,但我无法让它发挥作用。我需要在一个obect中组合变量。像这样:
var i = {
a: 1,
b: " sheep",
c: this.a + this.b
}
以后我可以做类似的事情:
i.a = 3;
console.log(i.c);
并获得“3只羊”。
这真傻吗?或者最接近它的是什么?
答案 0 :(得分:7)
使用功能。
var i = {
a: 1,
b: " sheep",
c: function () {
return this.a + this.b;
}
}
i.a = 3;
console.log(i.c());
这看起来像但是无论如何都要避免函数调用()。我已经看到get和set在对象中使用了。这是广泛使用的东西吗?
当然,你可以使用getter,but they won't work in IE <9(虽然上面的代码会这样),但由于它依赖于一种全新的语言语法,因此无法对其进行填充。
var i = {
a: 1,
b: " sheep",
get c() {
return this.a + this.b;
}
}
i.a = 3;
console.log(i.c);
答案 1 :(得分:3)
只有在执行以下操作时, object literal 才有可能:
var i = {
a: 1,
b: " sheep",
c: function() { return this.a + this.b; }
};
console.log( i.c() );
答案 2 :(得分:3)
var i = {
a: 1,
b: " sheep",
c: function () { return this.a + this.b }
}
i.a = 3;
console.log(i.c());