美文网首页
常用的初始化实例对象的模式

常用的初始化实例对象的模式

作者: ChrisWF | 来源:发表于2017-10-12 17:21 被阅读5次

    1. 工厂模式

    function makeObj(name, age, job) {

    var o = new Object();

    o.name = name;

    o.age = age;

    o.job = job;

    o.sayAge = function() {

    alert(this.age);

    };

    return o;

    }

    var a = makeObj("wst", "22", "web")

    优点: 能快速的构建大量实例。

    缺点: 不能解决对象识别的问题。

    2. 构造函数模式

    function Person(name, age, job) {

    this.name = name;

    this.age = age;

    this.job = job;

    this.sayAge = function() {

    alert(this.age);

    };

    }

    var a = new Preson("wst", "22", "web")

    优点: 能快速构建大量, 可以将其实例标识为一种特定类型

    缺点: 每个方法都要在每个实例上重新创建一遍

    3. 原型模式

    function Person() {

    }

    Person.prototype.name = 'wst';

    Person.prototype.age = '22';

    Person.prototype.job = 'web';

    Person.prototype.sayAge = function() {

    alert(this.age);

    };

    var a = new Preson("wst", "22", "web")

    简写

    function Person() {}

    Person.prototype = {

    constructer: Person,

    name: "wst",

    age: '22',

    job: 'web'

    };

    优点:避免了相同方法的重复构建

    缺点:因为其共享的本质,影响到实例拥有自己的全部属性

    4.混合模式

    function Person(name,age,job){

    this.name = name;

    this.age = age;

    this.job = job;

    this.frisds = ['zkw','lyf'];

    }

    Person.prototype = {

    constructor:Person,

    sayName:function (){

    alert(this.name);

    }

    };

    var a = new Preson("wst", "22", "web")

    使用最广泛,认同度最高,定义引用类型的一种默认模式

    相关文章

      网友评论

          本文标题:常用的初始化实例对象的模式

          本文链接:https://www.haomeiwen.com/subject/vteoyxtx.html