zoukankan      html  css  js  c++  java
  • JavaScript创建对象的七种方法

    一、 工厂模式

    创建:

    function createPerson(name,behavior){
    var p=new Object();
    p.name=name;
    p.behavior=behavior;
    p.getInfo=function(){
    alert(this.name+"在"+this.behavior)
    }    
    p.getInfo();
    }
    var person=createPerson("张三",["打游戏","看书"]);

    二、 构造函数模式

    创建:

    function createPerson(name,behavior){
    this.name=name;
    this.behavior=behavior;
    this.getInfo=function(){
    alert(this.name+"在"+this.behavior)
    }
    }
    var person=new createPerson("张三",["打游戏","看书"]);
    person.getInfo();


    三、原型模式

    创建:

    function createPerson(){}
    createPerson.prototype.name="张三";
    createPerson.prototype.behavior=["打游戏","看书"];
    createPerson.prototype.getInfo=function(){
    alert(this.name+"在"+this.behavior)
    }
    var person=new createPerson();
    person.getInfo();

    四、组合模式(构造函数与原型)

    创建:

    function createPerson(name,behavior){
    this.name=name;
    this.behavior=behavior;
    }
    createPerson.prototype.getInfo=function(){
    alert(this.name+"在"+this.behavior)
    }
    var person=new createPerson("张三",["打游戏","看书"]);
    person.getInfo();

    五、动态原型模式

    创建:

    function createPerson(name,behavior){
    this.name=name;
    this.behavior=behavior;
    if(typeof this.getInfo!="function"){
    createPerson.prototype.getInfo=function(){
    alert(this.name+"在"+this.behavior);
    }    
    }
    }
    var person=new createPerson("张三",["打游戏","看书"]);
    person.getInfo();

    六、寄生构造函数模式

    创建:

    function createPerson(name,behavior){
    var p={};
    p.name=name;
    p.behavior=behavior;
    p.getInfo=function(){
    alert(this.name+"在"+this.behavior)
    }    
    p.getInfo(); 
    }
    var person=new createPerson("张三",["打游戏","看书"]);

    七、稳妥构造函数模式

    创建:

    function createPerson(name,behavior){
    var p={};
    p.getInfo=function(){
    alert(name+"在"+behavior)
    }    
    p.getInfo(); 
    }
    
    var person=new createPerson("张三",["打游戏","看书"]);
    
     

    参考网址:http://www.cnblogs.com/ifat3/p/7429064.html

  • 相关阅读:
    1115:直方图
    1114:白细胞计数
    1114:白细胞计数
    忘记mysql密码后重置密码
    pycharm中无法导入pip安装的包
    win7升级win10
    WIN7 Windows update提示不支持硬件
    getcwd() 和 os.path.realpath () 的区别
    selenium启动chrome时,弹出设置页面:Windows Defender 防病毒要重置您的设置
    ui测试如何检测页面差异
  • 原文地址:https://www.cnblogs.com/jian138/p/8531152.html
Copyright © 2011-2022 走看看