LoginSignup
4
4

More than 5 years have passed since last update.

Backbone.js で View が所有する Model を指定する2パターンの違いについて

Last updated at Posted at 2015-01-21

JS を触るときには常識として押さえておくべき話だと思うのですが、 Backbone.js で View が所有する Model の指定方法についてハマってしまったので。

パターン1:プロパティでインスタンス化する
var View = Backbone.View.extend({
    model: new Model, // Model は Backbone.Model を extend したオブジェクト
});
var view = new View();
パターン2:initializeメソッド(コンストラクタ)でインスタンス化する
var View = Backbone.View.extend({
    initialize: function() {
        this.model = new Model(); // Model は Backbone.Model を extend したオブジェクト
    }
});
var view = new View();

一見すると、 パターン1パターン2 は同じことをやっているように見えますが、全く違うことをやっています。

パターン 説明
パターン1 View オブジェクトを宣言したときに Model がインスタンス化される
パターン2 View オブジェクトがインスタンス化されるときに Model もインスタンス化される

当然ながら、Collection についても同様です。

この違いを頭に入れて、有効に使い分けられると良いですね :blush:
(僕は失敗しました)

突っ込みどころ、誤った認識をしている箇所がありましたら是非ご指摘ください。

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4