文章出處

有下面這樣的一段代碼:

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上。


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()