LoginSignup
17
14

More than 5 years have passed since last update.

Backbone.js事始め その1

Last updated at Posted at 2014-09-16

必要になったのと興味もあった為、Backbone.jsを始めてみた。
そのHTMLテンプレートの覚え書き。サンプルで良く見かける動物クラスのパターン。

ソースコード

index.html
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">

    <title>Hello Backbone.js</title>
    <script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
    <script type="text/javascript" src="http://underscorejs.org/underscore-min.js"></script>
    <script type="text/javascript" src="http://backbonejs.org/backbone-min.js"></script>
    <script type="text/javascript">
    (function() {
        //Model作成
        var Animal = Backbone.Model.extend({
            //デフォルトプロパティ
            defaults: {
                species: "Animal",
                name: "None"
            },
            //コンストラクタ
            initialize: function(){
                console.log("初期化処理 : " + this.get("species"));
            },
            //コンストラクタ(※間違い)
            // constructor: function(){
            //  console.log("初期化処理 : " + this.get("species"));
            // },

            //メソッド
            call: function(){
                console.log("動物 : " + this.get("species"));
                console.log("私の名前は" + this.get("name") + "です。");
            }
        });
        //Animalのインスタンス化    
        var none = new Animal();

        //Animal(犬)のインスタンス化   
        var dog = new Animal({
            species: "",
            name: "ポチ"
        });

        //Animal(猫)のインスタンス化   
        var cat = new Animal({
            species: "",
            name: "タマ"
        });


        //console.log(dog);
        //console.log(cat);
        console.log(none.toJSON());
        console.log(dog.toJSON());
        console.log(cat.toJSON());
        none.call();
        dog.call();
        cat.call();
    })();
    </script>
</head>
<body>
    <h3>Backbone.js</h3>
</body>
</html>

疑問点

  • コンストラクタを定義した場合、callメソッド内で、プロパティを取得しようとthis.get("name")するとエラーとなる。

  • コンストラクタを定義した場合、dog.toJSON()をコールするとエラーとなる。コンストラクタまでは、JSON化できないからかな? でも、メソッドfunction()と変わらない気がするが・・・。

別の機会に検証しようと思う。

※※※追記 2014/09/18※※※

  • コンストラクタの定義の仕方が間違っていました。 constructor:ではなく、initialize:です。
    //コンストラクタ(※間違い)
    constructor: function(){
        console.log("初期化処理");
    },

    //コンストラクタ
    initialize: function(){
        console.log("初期化処理");
    },

17
14
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
17
14