美文网首页
十三(9)面向对象之寄生组合继承 ------ 2020-01-

十三(9)面向对象之寄生组合继承 ------ 2020-01-

作者: 自己写了自己看 | 来源:发表于2020-01-05 16:08 被阅读0次

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

相关文章

网友评论

      本文标题:十三(9)面向对象之寄生组合继承 ------ 2020-01-

      本文链接:https://www.haomeiwen.com/subject/tbhgoctx.html