对不起,如果问题太简单了,但我在这里遗漏了一些东西。刚刚切换了一个看起来像这样的 ES5 模块:
module.exports = {
func1: function(a, b) {...},
func2: function(a, b) {...}
};
对于一个看起来像这样的 ES6 类:
export default class {
func1(a, b) {...}
func2(a, b) {...}
}
一切都很好:在这两种情况下,我都可以export mod from 'module';
调用mod.func1(a, b)
and mod.func2(a, b)
。
但是,我有一个函数可以接收要调用的模块函数:
var caller = function(func, val1, val2) {
let a = something(val1);
let b = something(val2);
return func(a, b);
};
当我打电话时,caller(mod.func1, x, y)
我得到了第一个实现所需的结果,但undefined is not a function
第二个实现。
在这两种情况下都打印出mod.func1
返回值[Function]
,但显然是从 ES6 类返回的其他内容。
我做错了什么,我怎样才能得到一个可以在另一个函数中调用的类函数?
更新:使用第二个实现,我忘了添加实例化代码:
import Mod from 'module';
var mod = new Mod();