【JS常见设计模式】原型模式
原型模式
创建一个共享的原型,通过拷贝这个原型来创建新的类,用于创建重复的对象,带来性能上的提升
// 父类
function Father(firstName) {
this.firstName = firstName;
}
// 父类原型
Father.prototype = {
constructor: Father,
familyName: '牧',
address: '杭州',
getName: function getName() {
return this.familyName + this.firstName;
},
getAddress: function getAddress(params) {
return this.address;
}
}
// 子类
function Child(params) {
// call继承,继承私有属性和方法
Father.call(this, params)
}
// 原型继承,继承公有属性和方法
Child.prototype = Object.create(Father.prototype);
// 改变构造器指向
Child.prototype.constructor = Child;
let child1 = new Child('1');
let child2 = new Child('2');
console.log(child1.getName()) // 牧1
console.log(child1.getAddress()) // 杭州
console.log(child2.getName()) // 牧2
console.log(child2.getAddress()) // 杭州