有下面这样的一段代码:
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上。