Backbone.jsの勉強

(function() {
    var User = Backbone.Model.extend({

        initialize:function (argName) {
            // new 演算子でオブジェクトが生成されると
            // initialize関数が呼ばれる
            console.log('User obj created!');

            // セッターとゲッターを使ってプロパティを管理する
            this.set({name: argName});
        },

        // extend関数の一つ目の引数はインスタンスプロパティ
        insFn:function () {
            console.log('insFn called!');
        },
        insProp: 'HOGEEEEEE!'

    },{
        // 二つ目の引数で渡したオブジェクトがクラスプロパティになる
        clsFn:function () {
            console.log('clsFn called!');
        },
        clsProp: 'MOGEEEEEEEEE!'
    });

    // クラスメソッドを呼んでみる
    User.clsFn(); // -> clsFn called!
    console.log(User.clsProp); // -> MOGEEEEEE

    // Backboneのモデルは new 演算子で生成する
    var user = new User('kanasashi'); // -> User obj created!

    // インスタンスメソッドを呼んでみる
    user.insFn(); // -> insFn called!
    console.log(user.insProp); // -> HOGEEEEEE
    console.log( "My name is " + user.get('name'));
    // -> My name is kanasashi

    // user/User、もう少し大文字と小文字が
    // 分かりやすいローマ字を選べば良かった
})();