Javascriptはすでに拡張機能をサポートしていますので、実際の補足的な利点はjstraits http://code.google.com/p/jstraits/がもたらすでしょうか?libが本当にjavascriptにもたらす特徴は何ですか?
0
A
答えて
3
基本的に、Traitsは無関係なクラスがコードを共有する方法を提供します。
ここに(確かに考案された)例があります:跳ねるボールを描くクラスと幸せな顔の絵文字を描くクラスは、どちらも円を描く必要があります。彼らはおそらく共通のスーパークラスを共有していないでしょう。したがって、円描画コードを継承することはできません。特性を使用すると、円の描画コードをTShape
に置き、それぞれがdrawCircle
からTShape
を使用すると言います。これにより、各クラスに独自の実装があるのではなく、すべての円描画コードがTShape
に残ります。
(私が不自然言ったように。あなたはこれは単なる説明のためである。共通ライブラリに呼び出すと思い描くため。)
さて、あなたは確かに関数を作成し、それぞれにそれを割り当てることによって、これを自分で行うことができますプロトタイプ。しかし、あなたのコードベースが成長するにつれ、それは扱いにくくなります。
私の経験則によれば、形質は相互に使用することができますが、それ以外の場合は、直接的にインスタンス化可能なクラスでのみ形質を使用しようとします。 A
の形質をX
、クラスB
をA
から継承し、形質をY
に設定すると、毛むくじゃらの原因になることがあります。特に名前の変更が行われた場合
関連する問題
- 1. EditorReuseAttributeは本当に何ですか?
- 2. 本当に原子は何ですか?
- 3. awakeFromNibは本当に何ですか?
- 4. Javascriptでこれに相当するものは何ですか?
- 5. Javascriptの.sampleに相当するものは何ですか?
- 6. preg_matchのJavaScriptに相当するものは何ですか?
- 7. C#Server.URLEncodeのJavaScriptに相当するものは何ですか?
- 8. Cython型のメモリビュー:彼らは本当に何ですか?
- 9. JavaScriptまたはTypeScriptのfile_get_contents($ url)に相当するものは何ですか?
- 10. 特徴マッチングによる基本行列または本質行列の推定
- 11. Javascriptを - Image.completeは本当ですが、リアルタイム
- 12. Qt開発のlibとクロスプラットフォームのスクリーンキャプチャは本当ですか?
- 13. ユーザーが何もJavaScriptを何もしなかったから
- 14. SIFT/SURFから得られた最も重要な特徴を取得する
- 15. fsync、sync:それは本当に何をするのですか?
- 16. WPF/MVVMアプリケーション用のデータレイヤフレームワークの特徴は何ですか?
- 17. ソートmyClass $ 1.classのJavaクラスファイルの特徴は何ですか?
- 18. ガーキンとキュウリの特徴とは何ですか?
- 19. API BlueprintとSwaggerの特徴は何ですか?
- 20. 基本クラスから継承するものは何ですか?
- 21. qtScriptのJavaScriptのsetTimeoutに相当するものは何ですか?
- 22. vbscript Chr()関数のJavaScriptに相当するものは何ですか?
- 23. Jqueryの.load()簡略メソッドのjavascriptに相当するものは何ですか?
- 24. JavaのJavascript関数クロージャに相当するものは何ですか?
- 25. AndroidへのsetTimeOut()javascriptに相当するものは何ですか?
- 26. JavascriptのJavaのSystem.out.println()に相当するものは何ですか?
- 27. Javascriptの「in」のC++に相当するものは何ですか?
- 28. カスタムメンバーシッププロバイダは、本当に価値のあるものですか?
- 29. 本当に仮想関数は何ですか?
- 30. 本当にRikulo dartとは何ですか?
"関数を作り、それを各プロトタイプに割り当てることで、あなた自身が確かにこれを行うことができますが、あなたのコードベースが成長するにつれて扱いにくくなります。":なぜ独立した関数を簡単に作成できるので、関数を追加し、必要な数のプロトタイプに追加します。 – user310291
私の 'drawCircle'の塗りつぶしコードを' fillShape'にリファクタリングすることにしました。特性で、私は特性に関数を追加することができ、それはすべての私の 'drawX'関数で利用可能です。プロトタイプを使って同じことをするには、 'drawcircle'が使われているプロトタイプにそれを付ける必要があります。そのオブジェクトが塗りつぶしを気にするかどうか。 –
ありがとう、私は答えとしてマークします。なぜ地球上で私の質問が閉じられている:( – user310291