2010-12-30 4 views
2

私は間違いなくこれについていくつかの光を必要とします。コンストラクタとオブジェクトの違い

間diference何:1の機能と他のオブジェクトあるという明白な事実のほかに

var MY_APP = function(){ 
    this.firstMethod = function(){ 
     //something 
    }; 
    this.secondMethod = function(){ 
     //something 
    }; 
}; 

var MY_APP = { 
    firstKey: function(){ 
     //something 
    }, 
    secondKey: function(){ 
     //something 
    } 
}; 

、コードフローの違いは何ですか、プロトタイプ、パターン...何でも、いつ私たちは最初か二番目を使うべきですか?

私はこの領域にはまっているので、疑問を正しく説明しているかどうか分かりませんが、質問すればさらに情報を与えることができます。

+0

のjavascriptの美しさがあるということです両者の間には大きな違いはありません。彼らはどちらも閉鎖に基づいており、私が正しく覚えていれば、第2のものは最初のものの構文的砂糖です。 – num1

+2

@ num1 2つは非常に異なっています。オブジェクトリテラルはクロージャを提供せず、関数だけが行います。さらに、MY_APPのプロパティは、最初の例では関数が呼び出されるまで割り当てられませんが、2番目の例ではすぐに割り当てられます。 –

+1

さらに、最初の例は、** 2番目の例と同じ効果を生成しません**。 'My_APP()'を実行すると 'firstMethod'と' secondMethod'が 'window'に割り当てられ、グローバルプロパティになりますが、' MY_APP.firstMethod'と 'MY_APP.secondMethod'は未定義です。 –

答えて

関連する問題