1

さて、これは本当に簡単に思えますが、私はそれを機能させることができません。オブジェクト内の変数を組み合わせる必要があります。このようなもの:

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

後で私は次のようなことをすることができます:

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

そして「3匹の羊」を手に入れます。

これはばかげていますか?またはそれに最も近いものは何ですか?

4

3 に答える 3

7

関数を使用します。

var i = {
    a: 1,
    b: " sheep",
    c: function () {
        return this.a + this.b;
    }
}

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

これはそのように見えますが、とにかく関数呼び出し()を回避するためにあります。オブジェクトで使用されるgetとsetを見てきました。これは広く使われているものですか?

もちろん、ゲッターは使用できますが、IE <9では機能しません(上記のコードは機能します)。また、完全に新しい言語構文に依存しているため、ゲッターをシムする方法はありません。

var i = {
    a: 1,
    b: " sheep",
    get c() {
        return this.a + this.b;
    }
}

i.a = 3;
console.log(i.c);
于 2013-03-18T20:47:28.887 に答える
3

次の場合にのみ、オブジェクトリテラルで可能です。

var i = {
    a: 1,
    b: " sheep",
    c: function() { return this.a + this.b; }
};

console.log( i.c() );
于 2013-03-18T20:47:33.013 に答える
3
var i = {
    a: 1,
    b: " sheep",
    c: function () { return this.a + this.b }
}

i.a = 3;
console.log(i.c());
于 2013-03-18T20:47:36.657 に答える