什么是原型模式
原型模式是指将一个类的原型指向另个一类(实例化对象)的原型,实现对类的原型的共享。实现原理是基于JavaScript的原型链(prototype)
实现原型模式
对于原型模式,我们可以利用JavaScript特有的原型继承特性去创建对象的方式,也就是创建的一个对象作为另外一个对象的prototype属性值。原型对象本身就是有效地利用了每个构造器创建的对象,例如,如果一个构造函数的原型包含了一个name属性(见后面的例子),那通过这个构造函数创建的对象都会有这个属性。
const Common = function () {}
Common.prototype.name = '前端'
Common.prototype.age = '18'
Common.prototype.project = 'vue'
Common.prototype.setProject = function (val) {
console.log(`${val}: ${this.project}`)
}
const test1 = new Common()
const test2 = new Common()
test1.setProject('PC')
test2.setProject('M')
console.info(Common.prototype.constructor === Common)
总结
原型模式在JavaScript里的使用简直是无处不在,就是创建一个共享的原型,通过拷贝这个原型来创建新的类,用于创建重复的对象,带来性能上的提升。