私はたくさんの読書をしました。私はたくさんのダミーコードを書きました。JavaScript の継承を完全に征服しようとしたときと同じように、私はまだ混乱しています。たぶんもっとそうです。
私は非常に感心してBackbone.js
おり、コレクションの使用が気に入りました。だから私はソースを読んで、インスピレーションを感じました。しかし、私は継承とオブジェクトの拡張でつまずき続けています。
これは、継承を使用するJavascriptクラスを推測できる限りですが、この使用目的では、extendを使用する利点はわかりません。
function Collection(){
this._models = [];
}
Collection.prototype = {
models: function() {
return this._models;
},
fetch: function() {
console.log("TODO Override fetch method");
},
add: function(model){
this._models.push(model);
$(this).triggerHandler("add", model);
},
}
function Employees(){}
Employees.prototype = new Collection();
Employees.prototype.fetch = function(){
this._models = [new Person("Ron", "male"), new Person("Stevie", "female"), new Person("David Blunkett", "female")];
}
Collection
super classes( )_models
プロパティに直接アクセスするのは少し奇妙に感じますEmployees
が、機能します。このアプローチに問題はありますか?落とし穴や注意事項はありますか?私はこれを使ってアプリケーションを構築したくありません。
おそらく注目に値する編集Person
aModel
も a です...
function Model(){}
Model.prototype = {
get: function(attr){
return this.attr;
},
set: function(attr, value){
return this[attr] = value;
}
}
function Person(name, gender){
this.name = name;
this.gender = gender;
}
Person.prototype = new Model();