有下面这样的一段代码:

function a(){
  this.foo = function(){
    console.log('foo');
  }
}
var b = {};

请问如何让b继承a?

b.__proto__ = new a();
b.__proto__.constructor = Object;

注意不能写成

b.proto = a.prototype

因为a函数中的代码,并不属于prototype对象。

如果a也是一个对象呢

var a = {
  foo:function(){
    console.log('foo');
  }
};
var b = {};

请问如何让b继承自a

b.__proto__ = a;

如何实现多重继承

虽然javascript并不提供多重继承,但我们可以借用多个对象来实现。

var a  = {
    fn:function(){
        console.log(133);
    }
};

var b = {
    a:1
};
b.__proto__ = a;
b.__proto__.constructor = Object;

var c = {};
c.__proto__ = b;

但这也是有缺陷的,平白无故将b的原型加到了a上。

打赏支持我写出更多好文章,谢谢!
打赏作者
+

(^_^)打个赏喝个咖啡(^_^)

微信支付
支付宝支付
Posted on 2017-05-07 23:01  追梦子  阅读(653)  评论(0编辑  收藏  举报