1、前置知识:
A = {
name: '张三',
cell:'1234567890'
}
Object.create(A);
console.log(Object.create(A));
/**
如下图:Object.create()方法会创建一个空对象,并且把这个对象的 __proto__属性指向传入的这个对象
也就是将新创建的空对象的 __proto__ 指向传入的对象的原型(prototype);
*/
Object.create()方法.png
Object.create()原理.png
2、寄生组合继承:
function A (x) {
this.x = x;
}
A.prototype.getX = function () {
console.log(this.x);
}
function B (y) {
A.call(this, 200); // b1.x = 200;
this.y = y;
}
B.prototype = Object.create(A.prototype);
B.prototype.constructor = B;
B.prototype.getY = function () {
console.log(this.y);
}
let b1 = new B(100);
console.log(b1.y); // 100
console.log(b1.x); // 200
b1.getY(); // 100
b1.getX(); // 200
寄生组合继承.png
网友评论