b继承a

有下面这样的一段代码:

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

上一篇:php之array_column 的使用


下一篇:Xtreme9.0 - Car Spark 动态规划