私はバックボーンを試し、モデルの概念で遊んでいます。これは、過去にフレームワークなしで実装したものです。また、javascript linterをオンにして崇高なテキストを試していますが、「新しい」ものがかなり嫌いであることに気づきました。
var StandardMethod = Backbone.Model.extend({
initialize : function(){
console.log('init');
}
});
var LintOk = Backbone.Model.extend((function(){
this.initialize = function(){
console.log('init');
};
return this;
})());
var LintHates = Backbone.Model.extend(new function(){
this.initialize = function(){
console.log('init');
};
});
var sm = new StandardMethod();
var lo = new LintOk();
var lh = new LintHates();
LintOkメソッドでは、クロージャ互換の関数を作成するために、3つの異なる場所で変更を加える必要があります。したがって、次のようなクロージャ変数が必要な場合:
var NowWithClosures = Backbone.Model.extend(new function(){
var x = 1;
this.initialize = function(){
console.log('init');
};
this.AddOneToX = function(){
x++;
};
this.getX = function() {
return x;
};
});
var nwc = new NowWithClosures();
nwc.AddOneToX();
console.log(nwc.getX());
lint承認を受けるには、この非常に冗長な方法を使用する必要がありますか?ここに欠けているものはありますか?これの理由は何ですか?私は「これを返す」ことができました。私のすべてのモデル定義では、それはばかげているように見え、直感的ではありません。モデル定義は1画面以上の長さであり、「新しい」呼び出しが一番上にあり、より明らかに匿名のコンストラクターになります。