JavaScript 寄生式继承

1. 寄生式继承:类似于 原型式继承,实际上就是 原型式继承 + 工厂模式,直接上代码:

function object(o) { 
 function F() {} 
 F.prototype = o; 
 return new F(); 
}

原型式继承 创建对象,用于被所有实例对象所共享,之后使用 工厂模式 给每个对象添加自身独有的属性:

function createAnother(original){ 
 let clone = object(original); // 通过调用函数创建一个新对象
 clone.sayHi = function() { // 以某种方式增强这个对象
 console.log("hi"); 
 }; 
 return clone; // 返回这个对象
}
let person = { 
 name: "Nicholas", 
 friends: ["Shelby", "Court", "Van"] 
}; 
let anotherPerson = createAnother(person); 
anotherPerson.sayHi(); // "hi"

个人感觉就是 原型式继承 给对象添加自身独有属性的操作部分挪到了一个函数内部,类似于 工厂模式,其他和 原型式继承 并无差异.

 

上一篇:xshell连接本地虚拟机中的centos


下一篇:linux系统github全局加速