编程语言
首页 > 编程语言> > 来自多个对象的javascript继承

来自多个对象的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