Javascript结合对象内的变量

时间:2013-03-18 20:46:14

标签: javascript

好的,这看起来很简单,但我无法让它发挥作用。我需要在一个obect中组合变量。像这样:

var i = {
    a: 1,
    b: " sheep",
    c: this.a + this.b
}

以后我可以做类似的事情:

i.a = 3;
console.log(i.c);

并获得“3只羊”。

这真傻吗?或者最接近它的是什么?

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());