WEB开发网
开发学院网页设计JavaScript javascript设计模式交流 阅读

javascript设计模式交流

 2010-09-14 13:17:22 来源:WEB开发网   
核心提示: 后面补上UML图 gif版和visio版visio版:prototype.rar Templete Method是一个相对简单的模式,在父类中一个 多态地调用子类方法的方法 被称为Templete Method,javascript设计模式交流(6),在js中,因为缺少必要的接口检查和虚方

后面补上UML图 gif版和visio版

javascript设计模式交流(1)

visio版:prototype.rar

Templete Method是一个相对简单的模式,在父类中一个 多态地调用子类方法的方法 被称为Templete Method,在js中,因为缺少必要的接口检查和虚方法,不能够简单地使用C++或者Java的方式实现,但通过js的scope chain的灵活应用,可以更为优美地实现这一模式。

在js中,有一种非常有趣的继承方式:元类。尽管语言级别未提供支持,但是first class的函数和动态语言特性使得js能更为彻底地实现元类继承。首先,大概介绍下下元类继承的方式:

Code:

functionparent(string){
  varchild=newFunction("this.x=10;"+string);
  returnchild;
}
varchild=newparent("this.y=20;");
varchildObj=newchild();
alert(childObj.y);

以某种方式创建一个函数,并将之返回,这就是js版的元类继承。作为扩展,可以不使用Function创建函数,parent为子类提供参数

Code:

functionparent(n){  
  returnfunction(){
    this.show=function(){
      alert(n);
    }
  };
}
varchild=newparent(20);
varchildObj=newchild();
childObj.show();

如果你认为这不能算作继承的话,那么下面一段代码可以展现这种继承的灵活性:

Code:

functionparent(prototype){
  returnfunction(){
    this.show=function(){
      alert("show");
    }
    for(varpinprototype)this[p]=prototype[p];
  };
}

上一页  1 2 3 4 5 6 7 8  下一页

Tags:javascript 设计模式 交流

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接