• Javascript MVC学习杂记1


     这两天看了下<基于MVC的Javascript 富应用开发>,感觉刚开始讲的那个model类,比较有趣,所以自己就造了一个轮子,体会了下,当然也参考了点代码,见下面的代码

    //基于原型的继承
    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

  • 相关阅读:
    结对编程(阶段二)
    结对编程 第一阶段
    Git实验
    webpack02
    webpack01
    实验五 单元测试
    实验四 代码审评
    UML建模工具的安装和使用
    实验二 结对编程(阶段二)
    博客园背景的修改
  • 原文地址:https://www.cnblogs.com/xuwenmin888/p/3059524.html
Copyright © 2020-2023  润新知