前端常见的设计模式

工厂模式

将方法属性单独定义,避免重复创建,将公共的属性定义到一个函数中,可以重复使用。

  var skill=function(){
    return 'ada';
}
  function  CreatePerson(name,age,gender){
      var obj={};
      obj.name=name;
      obj.age=age;
      obj.gender=gender;
      obj.skill=skill;
      return obj;
}
var p1=CreatePerson('ll',12,'nv');
alert(p1.skill());

构造函数模式

var skill=function(){return 'ada';};
    function CreatePerson(name,age,gender){
        this.name=name;
        this.age=age;
        this.gender=gender;
        this.skill=skill;
    } 
 var p2=new CreatePerson('ll',12,'女');
    alert(p2.name);
    alert(p2.skill());

注意:构造函数模式在实例化的时候要使用New操作符

构造函数和原型的混合方式

将公共属性放在原型上,私有属性放进构造函数中,

    function Person(){
        this.name='ll';
        this.age=12;
    };
    Person.prototype.skill=function(){
        return 'ada';
    };
    var x=new Person();
    alert(x.skill());

构造函数和原型的动态原型模式

    function Person(){
        this.name='ll';
        this.age=32;
        if(typeof Parent.skill=='undefined'){
            Person.prototype.skill=function(){
                returin this.name;
            }
            Person.skill=true;
        }
    };
    var x=new Person();
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 构造函数模式 混合模式(将父元素的原型链赋值给空对象F,再将空对象F赋值给子元素的原型链来实现继承同时不覆盖子元素...
    曾祥辉阅读 1,028评论 0 0
  • 使用同一个接口创建很多对象,会产生大量的重复代码。为解决这个问题吗,人们开始使用工厂模式的一种变体。 工厂模式 工...
    BertFu阅读 934评论 0 4
  • 本章内容 理解对象属性 理解并创建对象 理解继承 面向对象语言有一个标志,那就是它们都有类的概念,而通过类可以创建...
    闷油瓶小张阅读 890评论 0 1
  • 何为天下 何为笔 为你持剑 为你挥 醉回桃花 梦中泪 孤今无眠 今何在 窈窕淑女 回眸笑 笑看三国 乔何在 为了...
    一御而飞阅读 153评论 1 4
  • 今天的最后十几分钟,一个人默默地在这个硕大的城市里,发呆,不知道自己到底在想些什么。在想你,在想他。分开快两个月了...
    简爱226阅读 134评论 0 0