8
A
答えて
12
ソースコードを見ると、get
関数はthis.attributes[name]
を呼び出すだけです。
http://backbonejs.org/docs/backbone.html#section-31
利点は、しかし、少なくとも2倍である:
1)あなたは
2を書いているコードの量を減らし、一貫したAPI)をオーバーライドする機能get
メソッドより複雑なアクセス制御を提供します
たとえば、ネストされたモデル機能を提供するためにモデルがどのように機能するかを上書きするいくつかのバックボーンプラグインがあります。
model.get("submodel.attr")
、それはsubmodel
サブモデルのattr
を解析持っている:彼らはあなたがこのようなgetメソッドを書くことができるようにするために、それは非常に簡単です。 getメソッドを使用しないと、これをAPIと一貫性を持たせることは難しくなります。
しかし、これの基本的な利点はカプセル化です。 JavaScriptがgetterとsetterのコードを書くための真のget/setプロパティを提供するまでは、Backboneのget
とset
のような回避策が残っています。
2
はじめに、model.attribute
は絶対に正しくありません。 change
イベントを発生させるには、model.set()
が必要です。 model.get(attribute)
関連する問題
- 1. Heredoc <<<または<<?
- 2. <の違いは? <?php
- 3. マウスは、マウスが<code>.wrap</code>、<code>.cube</code>と<code>.front</code>のために働いてではなく、<code>.left</code>、<code>.right</code>、<code>.top</code>、<code>.bottom</code>と<code>.back</code>のためにされ
- 4. APIフック/コールバックのベストプラクティス?いくつかのリソース(簡単なCRUD操作)を管理するために使用される</p> <ul> <li><em>API</em></li> <li>セット<em>の応用</em></li> </ul> <p><em>API</em>:
- 5. "**/* /"と "** /"の違いは?出力は、少なくとも小さなサブツリーのために、同じように見える</p> <p><code>Dir.glob("**/*/")</code></p> <p><code>Dir.glob("**/")</code></p> <p>:ここ
- 6. Gitは<<<<<<< HEADをファイルに追加し続けます
- 7. $( '#table> tr')セレクタが一致しないのはなぜですか? jQueryを使って</p> <pre><code><table id='table'> <tr> <td>..</td> </tr> </table> </code></pre> <p>JSコード:
- 8. タートルOnkey - 私は<code>turtle.onkey(check, 'Enter')</code>を試みたが、私はエラーを取得するもの<kbd>ための用語は<code>Turtle.Onkey()</code></p> <p>ため</kbd>キーを入力しているキー
- 9. Swift <<, ><, <=< and > = <
- 10. は、私はindex.htmlを</p> <pre class="lang-html prettyprint-override"><code><script src "../src/man/js/Generator.js"> </script> </code></pre> <p>が、上のファイルの.jsを含めるしようとすると、私はいくつかの問題を抱えていた</p> <p>)JS最初にHTML
- 11. ?</p> /../ <br> ./../ <br> <p>との違いは何かファイルフォルダを変更するための
- 12. は、私がExcelにファイルをダウンロードするための 'axlsx_rails'</strong></p> <p><strong>宝石 'acts_as_xlsx'</strong></p> <p>を</p> <p><strong>宝石を使用していた宝石 "rubyzip"
- 13. 私は私の<strong>ASP.NET MVC</strong>アプリケーションで<strong>DI</strong>ため<strong>Ninject</strong>を使用していMVCアプリケーション
- 14. 私は<code>Emulator Android BlueStack</code></p> <p><code>IISExpress ASP.NET</code>で<code>ASP.NET IISExpress</code>を使用したい
- 15. cppcheckレポートcppcheckが言う</p> <pre><code>using GridType = Grid<boost::optional<float>, 2>; </code></pre> <p>いる:これは文脈のトンではないことを理解する「を使用して」ステートメント
- 16. <article>,<section>,<figure>,<header>,<footer>,<nav>のようなHTML5タグを使用する利点は何ですか?
- 17. LINQ ToListがここで使用されないのはなぜですか? <code>source</code>が<code>IEnumerable<T></code>ある</p> <pre><code>using(var iterator = source.GetEnumerator()) {...} </code></pre> <p>:
- 18. なぜ[:] = 1は[:] = '1'と根本的に異なるのですか? <code>a</code>が<code>['1']</code>ある最初のケースで</p> <pre><code>a = [] a[:] = '1' </code></pre><p>と</p> <pre><code>a = [] a[:] = 1 </code></pre><p>:
- 19. テキスト読み上げは、私がビルトイン<strong><code>TTS Engine</code></strong>アンドロイドを使用して<strong><code>.mp3</code></strong>ファイルに<strong><code>.txt</code></strong>ファイルを合成するためのコードの下に使用しているAndroidの
- 20. 代替は「<<<」魚
- 21. </p> <pre><code>Backbone.View.extend </code></pre> <p>を使用したカスタムバックボーンビュー
- 22. xamDataGridのフィールドは、私が使用して<strong><em>コンバータ</em></strong>内のフィールドの<strong>はAllowEdit</strong>プロパティを設定するために、<strong>xamDataGridの</strong>のフィールドに対して<strong><em>スタイル</em></strong>を作りたい
- 23. Cの<と<<の違いは何ですか?
- 24. process.cwd()と__dirnameの違いは何ですか?</p> <pre><code>console.log(process.cwd()) </code></pre> <p>と</p>私は両方が同様の文脈で使用さ見てきました <pre><code>console.log(__dirname); </code></pre> <p>の違いは何
- 25. cat <<を理解する!構文
- 26. は、Java用<a href="http://www.magnolia-cms.com/" rel="nofollow">MAGNOLIA</a></p> <p>CMSを使用する
- 27. ドキュメントは<<< OUT
- 28. <<<
- 29. <p>は、私が聞いてもどこで、どのように</p> <pre><code>http://domain.com, http://www, https://domain.com </code></pre> <p></p> <pre><code>https://www </code></pre> <p>にリダイレクトするために?</p>あなたのnginxの設定ファイルで
- 30. フレンドオペレータを使用したコンパイラエラー<<
の代わりに
model.attributes[attribute]
を使用する習慣があれば、これを忘れる可能性が非常に高いです。user.get( 'name') 'vs' user.name'がコード量を減らす方法を明確にしてください。 –彼はあなたがもっと長い 'user.attributes ['name']'の代わりに 'user.get( 'name')'を使うことを意味すると思います。しかし、ネストされたモデルにアクセスするには、次の構文を使用します: 'user.attributes.name.first' – orad