Javascript MVC学習雑記1
1978 ワード
この二日間は<MVCベースのJavascriptアプリケーション開発>を見ました.最初に話したモデル類は面白いと思いました.だから自分で輪を作って、体験しました.もちろんコードも参考にしました.下記のコードを見てください.
//
if(typeof Object.create!=="function"){
Object.create=function(o){
function F(){}
F.prototype=o;
return new F();
}
}
var Model={
prototype:{
init:function(){
console.log('Model.prototype.init');
},
find:function(){
console.log('Model.prototype.find');
}
},
inherited:function(){
//console.log('exec inherited')
},
created:function(){
//console.log('exec created!');
},
create:function(){
var object=Object.create(this);
object.parent=this;
object.prototype=object.fn=Object.create(this.prototype);
object.created();//
this.inherited(object); //
return object;
},
init:function(){
var instance=Object.create(this.prototype);
instance.parent=this;
instance.init.apply(instance,arguments);
return instance;
},
extend:function(o){
for(var key in o){
this[key]=o[key];
}
},
include:function(o){
for(var key in o){
this.prototype[key]=o[key];
}
}
};
var User=Model.create();
//
User.extend({
initattr:function(o){
var obj=this.init();
for(var key in o){
obj[key]=o[key];
}
return obj;
}
});
//
User.include({
getname:function(){
console.log(this.name);
}
});
var user=User.initattr({"name":"xuwm","age":12});
user.getname();
上のコードをdemo.jsファイルに保存して、そのままNODEで実行できます.コマンドラインモードで、node demo.js.