来自多个对象的javascript继承
作者:互联网
我不太熟悉javascript继承,我试图让一个对象从另一个继承,并定义自己的方法:
function Foo() {}
Foo.prototype = {
getColor: function () {return this.color;},
};
function FooB() {}
FooB.prototype = new Foo();
FooB.prototype = {
/* other methods here */
};
var x = new FooB().getColor();
但是,第二个覆盖第一个(FooB.prototype = new Foo()被取消).有什么方法可以解决这个问题,还是我朝错误的方向走?
在此先感谢,抱歉任何不好的术语.
解决方法:
每个对象只能有一个原型,因此如果要在继承(复制)后添加到原型,则必须扩展它而不是分配新的原型.例:
function Foo() {}
Foo.prototype = {
x: function(){ alert('x'); },
y: function(){ alert('y'); }
};
function Foo2() {}
Foo2.prototype = new Foo();
Foo2.prototype.z = function() { alert('z'); };
var a = new Foo();
a.x();
a.y();
var b = new Foo2();
b.x();
b.y();
b.z();
标签:javascript,oop,multiple-inheritance,prototypal-inheritance 来源: https://codeday.me/bug/20191002/1842850.html