[英]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.