繁体   English   中英

是否可以在 ES2015 中导入类方法

[英]Is it possible to import class methods in ES2015

我正在一个模块中创建一个方法:

export function myMethod() {}

并在另一个模块中实例化一个类:

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

是否可以将myMethod用作MyClass类的一部分?

我正在尝试创建以下代码的等效项:

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

不,不可能在class声明中引用给定的值。

然而, class语法主要是语法糖,原型继承一​​如既往地工作。 您可以简单地将方法放在类定义之后的原型对象上:

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

如果您的方法需要使用super ,您将需要使用.toMethod方法

实际上可以在类中引用外部方法:

// in methodFile.js:

module.exports = function myMethod() {
  console.log('running in the method!');
}

// in main file

const myMethod = require('./methodFile');

class MyClass {
    myMethod = myMethod;
}

const myClass = new MyClass();

myClass.myMethod(); // running in the method!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM