2016-04-18 6 views
0

オブジェクトを入れ子にして、var1.var2.func1()などのオブジェクトを呼び出しています。一般的にパフォーマンスとコーディングの実践には大丈夫ですか?代替案がありますが、この方法は受け入れられますか?入れ子オブジェクトは良い習慣と見なされますか?

function foo(name) { 
    this.bar = { 
     xyz: function() { 
      console.log(name) 
     } 
    } 
} 

var abc = new foo("John"); 

abc.bar.xyz(); 
+2

です。どうしてそんなことはできないの? – Neal

+0

私はJavaScriptの新機能ですので、入れ子オブジェクトが標準であるかどうか疑問に思っていました。 –

+0

それはちょうどプレーンオールのコードカプセル化のように見える... – Neal

答えて

0

上記のコードでわかる1つの問題は、Demeterの法則または最小限の知識の原則に違反していることです。

このデザインガイドラインの詳細は、https://en.wikipedia.org/wiki/Law_of_Demeter

+0

'bar'をパブリックインタフェースの一部として扱うかどうか、' xyz'は正確に何をするかによって異なります。 – Bergi

関連する問題