オブジェクト指向のJavaScriptは、必ずしもすべての 問題の答えとは限りません。
私のアドバイスは、このトピックで選択した項目に注意してください。
OO-JSでは、従来のオブジェクト指向言語に似ているようにするために、コードを複雑にすることがあります。ご存じのように、JSはユニークです。
コードを構成し、実装を軽く柔軟に保つためのデザインパターンがあることが重要です。
OOではなく、高度なJS の実装を見ているデザインパターンです。 Axel Rauchmeyerの言い換えに、 "オブジェクト 方向付けされた方法論は、基本的なJavaScriptシンタックスには適合しません。 はねじれた曲がりくねった実装であり、JSははるかに表現力があります。 "
この分析の根底には、JSにはクラスがないという事実があります。本質的には、すべてがオブジェクトであるため、オブジェクト指向の変数と関数を既に持っています。したがって、問題はコンパイルされた言語(C/Java)で見られるものとわずかに異なります。
JavaScriptにはどのようなデザインパターンがありますか?
優れたリソースは、Addy O 'Somani and Essential Design Patternsです。 He wrote this book on Design Patterns in JavaScript.
しかし、もっと...もっと多くのことがあります。
A. require.js - JSコードのモジュールを非常に印象的な方法で読み込む方法があります。 これらは一般にモジュールローダーと呼ばれ、実行時にパフォーマンスを最適化するため、jsファイルのロードの将来と広く考えられています。イープノープなどが存在する。少数のjsファイルを読み込んでいる場合は、このことを覚えておいてください。 (要請によりトップに移動)。
B. MVC - コードを構造化するのに役立つ数多くのModel View Controllerフレームワークがあります。 パターンですが、あなたの目的には不合理かもしれません。あなたはバックボーン、ノックアウトと角度を言いました...はい。これらはあなたのためのトリックを行うことができますが、私は彼らが1)高い学習曲線、および2)あなたの環境に対する過度の可能性があると懸念しています。
C.名前空間またはモジュールパターン。 おそらくあなたのニーズに最も重要です。 グローバル変数を解決するには、それらを名前空間にラップして参照するだけです。 これはモジュールローダーを発生させる非常に良いパターンです。
D.閉鎖 - OO JSに言及しました。有用なのは、プライベートメンバーをあなた自身に提供するための閉鎖の概念です。最初はこれは謎めいたアイデアですが、パターンを認識した後は簡単なことです。
E.カスタムイベント - オブジェクト間でハードリファレンスを使用しないことが非常に重要になります。例:AnotherObject.member;
これは、2つのオブジェクトを緊密に結合し、両方を柔軟に変更できるためです。これを解決するには、イベントをトリガして聞きます。従来のデザインパターンではこれがオブザーバです。 JSではPubSubと呼ばれます。
F.コールバック - コールバックパターンはAJAXを有効にしたもので、非ブロックioという名前のために、Window 8、Firefox OS、およびNode.jsの開発に革命をもたらしています。非常に重要です。
恐れてはいけません。これは、長期的かつ高度なJavaScript実装の方向性です。
パターンを認識すると、そこから下り坂になります。
これが役に立ちます。
まず、フレームワークの使用を決める前に、JavaScriptの基本を把握することを強くお勧めします。オブジェクト指向のjavascriptを作成するのは難しくありません([これは必須です](http://shop.oreilly.com/product/9780596517748.do))。オブジェクトを定義して拡張するための独自の方法を提供するフレームワーク(ノード、背骨、バックボーンなど)が数多くありますが、まあまあの比較をするには十分に分かりません。 – RobMasters
@RobMasters JSは私の問題ではないかもしれませんが、おそらく私はJSのすべてのトリックを認識していないかもしれませんが、問題なくJSを書くことができます。とにかく、提案のおかげで、私は確かに参照したリンクをブックマークします。 – Paul