【问题标题】:Is it possible to export a function that calls another function defined in the file where the module is imported from?是否可以导出一个函数,该函数调用在导入模块的文件中定义的另一个函数?
【发布时间】:2021-06-18 05:23:49
【问题描述】:

例子:

// module "my-module.js"    
export default function func1() {
      ...
      func2();
      ...
    }

其中 func2 仅在我们执行操作的文件中可用:

import func1 from './my-module.js'

function func2() {
  console.log('OK');
}

func1();

这可能吗?

【问题讨论】:

  • 这似乎是一个场景,您可能希望利用创建一个具有已声明但未定义 func2() 的抽象类,func1() 将调用该类。完全导出类,并在导入它的文件中,实现抽象类并为func2() 添加定义,然后func1() 将按预期在这里工作。
  • 这似乎也是一个不错的选择,@BinHong,谢谢!

标签: javascript function import export es6-modules


【解决方案1】:

不行,func2 必须在创建func1 时定义,否则将是undefined,并在调用func1 时抛出运行时异常。

您可以将func2 作为func1 的参数传递并在内部调用它。

// module "my-module.js"
export default function func1(callback) {
  callback();
}
import func1 from './my-module.js';

function func2() {
  console.log('OK');
}

func1(func2);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-21
    • 2019-03-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多