美文网首页
创建对象模式

创建对象模式

作者: silvacheng | 来源:发表于2018-04-27 17:15 被阅读0次

1.工厂模式

这种模式抽象了创建具体对象的过程

function createPerson () {
  var o = new Object();
  o.name = name;
  o.age = age;
  o.job = job;
  o.sayName = function () {
    alert(this.name)
  }
}
var person1 = createPerson('silva', 29, 'IT');

2.构造函数模式

function Person (name, age) {
    this.name = name;
    this.age = age;
    this.say = function () {
        console.log('hello');
    }
}

var p1 = new Person('silva', 26);
var p2 = new Person('jimmy', 29);
// 备注:  要创建Person的新的实例,必须使用new操作符。
// 以这种方式调用构造函数实际上经历以下4个步骤:
// 1.创建一个新的对象
// 2.将构造函数的作用域赋值给新对象(因此this就指向了这个新对象)
// 3.执行构造函数中的代码
// 4.返回新的对象

3.原型模式

function Person () {}

Person.prototype = {
    constructor: Person,
    name: 'silva',
    age: 29,
    sayName: function () {
        console.log(this.name);
    }
}

var person1 = new Person();
person1.sayName();

4.组合使用构造函数模式和原型模式

构造函数模式用于定义实例属性,原型模式用于定义方法和共享属性

function Person (name, age, job) {
    this.name = name;
    this.age = age;
    this.job = job;
}

Person.prototype = {
    constructor: Person,
    sayName: function () {
        console.log(this.name);
    }
}

var person1 = new Person('silva', 29, 'IT');

5.动态原型模式

// 把所有信息都封装在构造函数中
function Person (name, age, job) {
    this.name = name;
    this.age = age;
    this.job = job;
    if (typeof this.sayName != 'function') {
        Person.prototype.sayName = function () {
            console.log(this.name);
        }
    }
}
var person1 = new Person('silva', 29, 'IT');

6.寄生构造函数模式

// 这种模式的基本思想是创建一个函数,该函数的作用仅仅是封装创建对象的代码,然后再返回新创建的对象
function Person(name, age, job) {
    var o = new Object();
    o.name = name;
    o.age = age;
    o.job = job;
    o.sayName = function () {
        console.log(this.name);
    };
    return o;
}
var friend = new Person('Mike', 18, 'student');
friend.sayName();

相关文章

  • (GeekBand)C++设计模式 第二周学习笔记

    Factory Method模式 “对象创建”模式 通过“对象创建”模式绕开new,来避免对象创建(new)过程中...

  • 2018-03-22

    Boolan C++设计模式二 “对象创建”模式:通过“对象创建”模式绕开new,来避免对象创建(new)过程中所...

  • js创建对象及工厂模式

    单体创建对象 工厂模式创建对象

  • 单体创建对象、工厂模式创建对象

    单体创建对象 工厂模式创建对象

  • JavaScript对象的创建方法

    大纲 前言1、简单方式创建对象的方法2、工厂模式创建对象3、构造函数模式创建对象4、原型模式创建对象5、组合使用构...

  • javascript面向对象与原型

    昨天我们讲了在面向对象中创建对象的几种方式 工厂模式 构造函数模式 工厂模式创建的对象,像工厂一样来创建对象,创建...

  • 模式设计之 原型模式

    定义 原型模式:原型模式用于创建重复的对象,实现对象的拷贝。这种模式类似于创建型模式,提供了创建对象的最佳模式。 ...

  • 设计模式(Design pattern)

    一、分类 1、根据目的分类 创建型模式、结构型模式和行为型模式 创建型模式:“怎样创建对象” -> “对象的创建与...

  • 第二周(Geek Band)

    ---------------------对象创建-------------------- 通过【对象创建模式】绕...

  • 设计模式分为三种类型,共23类

    1.创建型模式 创建型模式是处理对象创建的设计模式,试图根据实际情况使用合适的方式创建对象。基本的对象创建方式可能...

网友评论

      本文标题:创建对象模式

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