批量创建对象的方法

工厂模式

  1. 什么是工厂模式?
    定义: 封装一个方法调用即可创建多个对象

    function createObj( name,age,height ){
      let obj = new Object( )
      obj.name = name
      obj.age = age
      obj.height = height
      obj.say( ) = fucntion ( ){}
      return obj
    }
    let nano = createObj('nano',18,188)
    let roily = createObj('roily',18,188)
  2. 缺点: 获取不到对象最真实的类型,返回的值都是一个字面量

构造函数[ES5]

  1. 什么是构造函数?
    定义: 通过 new 来执行的一个函数

  2. 使用

    function Person(name,age){
      this.name = name
      this.age = age
      this.run = function(){ console.log('run') }
    }
    Person.prototype.say = function(){ console.log( 'hello' ) }
    const student = new Person('nano', 20)
  3. new的作用
    (1) 创建一个新的对象
    (2) 将该构造函数的prototype(显式原型) 赋值给该对象的__proto__属性(隐式原型)
    (3) 将构造函数的this指向这个新对象
    (4) 执行函数内部代码
    (5) 如果构造函数没有返回非空对象,则返回创建出来的对象

  4. 缺点
    缺点: 每用构造函数创建对象时,里面的方法都会创建一个新的地址占据内存,明明是一样功能的方法
    解决: 直接将共用的方法或者变量放在构造函数的显示原型(prototype)上


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!