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

  • 相关阅读:
    ORA12560: TNS: 协议适配器错误
    eclipse无法识别Web项目的问题
    搭建eclipse+tomcat开发环境
    初探弹出层的实现原理
    样式可控的左右选择组件
    在TSQL中用队列来遍历层级数据
    复利计算工具 wpf
    浏览WPF中内置颜色名对应的颜色
    原创:通过VS 2010+SVN为SQL Server提供数据库版本管理
    原创:学习英语小助手(阅读粘贴的英文,使用MVVM)
  • 原文地址:https://www.cnblogs.com/jian138/p/8531152.html
Copyright © 2011-2022 走看看