如何继承STATIC方法?

sil*_*der 5 javascript oop inheritance design-patterns

我上课了

function Man(){...}

Man.drinkBeer = function(){...}
Run Code Online (Sandbox Code Playgroud)

我需要继承SuperManMan.我仍然希望Superman能喝一些啤酒.

我怎样才能做到这一点?

SLa*_*aks 6

Object.setPrototypeOf(SuperMan, Man);
Run Code Online (Sandbox Code Playgroud)

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

请注意,这会影响函数本身,而不是它们的prototypes.

是的,这令人困惑.

没有现有浏览器支持setPrototypeOf(); 相反,您可以使用非标准(但工作)替代方案:

SuperMan.__proto__ = Man;
Run Code Online (Sandbox Code Playgroud)

  • 这是一种ES6方法,不是吗? (4认同)