创建对象

创建对象_第1张图片
创建对象的方法
  • 工厂模式
    封装函数,返回一个对象

    • 优点:解决了创建多个相似对象的问题
    • 缺点:没有解决对象识别的问题(怎样知道一个对象的类型)
  • 构造函数模式

    • 优点:修正了工厂模式的缺点
    • 缺点:每个实例都有自己的方法,冗余
  • 原型模式
    每个函数都有一个prototype(原型)属性,这个属性是一个指针,指向一个对象。
    原型对象包含可以由(自定义的引用类型对象的所有实例对象)共享的属性和方法。

  • 组合使用构造函数模式和原型模式
    构造函数模式用于定义实例属性,而原型模式用于定义方法和共享的属性。

    • 优点:
      每个实例都有自己的一份实例属性的副本,但同时又共享着对方法的引用,最大限度地节省了内存。
  • 动态原型模式
    在构造函数中初始化原型。

  • 寄生构造函数模式
    和工厂模式内部代码一模一样,只是包装函数变成了构造函数,需要通过 new 关键字调用。

应用场景:特殊情况下用来为对象创建构造函数。

  • 稳妥构造函数模式

新创建的对象的实例方法不引用 this
不使用 new 关键字调用构造函数。

你可能感兴趣的:(创建对象)