Is it possible to import class methods in ES2015

2019-02-15 10:38发布

I'm creating a method in one module:

export function myMethod() {}

And instantiating a class in another module:

import {myMethod} from './methodFile';
class MyClass {
    constructor() {}
    myMethod // doesn't work
}

Is it possible to use myMethod as part of the MyClass class?

I'm trying to create the equivalent of the following code:

class MyClass {
    constructor() {}
    myMethod() {}
}

1条回答
干净又极端
2楼-- · 2019-02-15 11:04

No, it is impossible to reference given values in class declarations.

However, class syntax is mostly syntactic sugar, and prototype inheritance works as always. You can simply put the method on the prototype object after the class definition:

import {myMethod} from './methodFile';
class MyClass {
    …
}
MyClass.prototype.myMethod = myMethod;

If your method needs to use super, you'll want to use the .toMethod method.

查看更多
登录 后发表回答