2016-04-15 20 views
1

私はJavascriptでますます仕事を始めていますが、私は時々次の問題にぶつかります。
の値に基づいて値を割り当てたいという値を入力しました。値を割り当てる際に値を割り当てます

簡単な例:

var Example = { 
    valueA : 100, 
    valueB : 20, 
    valueC : Example.valueA/Example.valueB 
} 

しかし、これはvalueCラインでExample is undefinedできます。私は、Exampleオブジェクトがこの時点で使用される準備ができていないと仮定しています。最初に "完了している"ことが必要です。

私は何ができる

:この例では

var Example = { 
    valueA : 100, 
    valueB : 20, 
    valueC : -1 // Gets value later 
} 
Example.valueC = Example.valueA/Example.valueB 

これは完全にaccaptableだろうが、私は、私はこれらの「ポストのinit」多くの問題を持っているでしょう状況で終わりますか、割り当てられた値はもう少し補完されます(例:数式)。

"Simple Example"のようなことはできますか?私の現在の解決策は、過剰な使用のように感じます。

+0

ああ、そう、それはそれはと呼ばれるものです。 didntは手がかりを持っています、ありがとう。 – Martijn

答えて

1

あなたはgetterを使用することができます。

get構文は、そのプロパティが検索されるときに呼び出される関数にオブジェクトのプロパティをバインドします。

プロパティvalueAまたはvalueBに他の値を割り当てて除算の実際の結果を得ることができます。

var Example = { 
 
    valueA: 100, 
 
    valueB: 20, 
 
    get valueC() { 
 
     return this.valueA/this.valueB; 
 
    } 
 
}; 
 

 
document.write(Example.valueC);

+0

しかし、これは 'valueC'を関数にするでしょうか?これは私が頻繁に呼び出す変数になるでしょう、それはちょっと心配しないでしょうか? – Martijn

+0

はい、それは関数ですが、呼び出しはかっこなしで機能し、値を持つ変数のように機能します。呼び出しを心配しないでください。 –