批量创建对象的方法
工厂模式
什么是工厂模式?
定义: 封装一个方法调用即可创建多个对象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)
缺点: 获取不到对象最真实的类型,返回的值都是一个字面量
构造函数[ES5]
什么是构造函数?
定义: 通过 new 来执行的一个函数使用
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)
new的作用
(1) 创建一个新的对象
(2) 将该构造函数的prototype(显式原型) 赋值给该对象的__proto__属性(隐式原型)
(3) 将构造函数的this指向这个新对象
(4) 执行函数内部代码
(5) 如果构造函数没有返回非空对象,则返回创建出来的对象缺点
缺点: 每用构造函数创建对象时,里面的方法都会创建一个新的地址占据内存,明明是一样功能的方法
解决: 直接将共用的方法或者变量放在构造函数的显示原型(prototype)上
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!