我有一个类

function Man(){...}

Man.drinkBeer = function(){...}

我需要从SuperMan继承Man。而且我仍然希望自己的Superman能够喝点啤酒。

我怎样才能做到这一点?

最佳答案

Object.setPrototypeOf(SuperMan, Man);

这会将派生函数的内部__proto__属性设置为基本函数。
因此,派生函数将继承基本函数的所有属性。

请注意,这会影响功能本身,而不影响其prototype

是的,令人困惑。

现有的浏览器均不支持setPrototypeOf();相反,您可以使用非标准的(但可行的)替代方法:
SuperMan.__proto__ = Man;

10-06 10:05