You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否在同一文件导出Class与Function?如何导出testOne函数?

解决方案

1. 导出testOne函数的方法

有两种常用的实现方式:

方法一:挂载到Test实例上导出

把testOne绑定到Test的实例上,保持原有导出结构的同时新增函数:

class Test {
  doOne = async () => {
    ...
  };
}

const testOne = async () => {
  ...
}

const testInstance = new Test();
testInstance.testOne = testOne;
module.exports = testInstance;

导入后可以直接通过实例调用testOne,同时保留原有的doOne方法调用逻辑。

方法二:导出包含多内容的对象

直接导出一个聚合对象,同时包含Test实例、testOne函数甚至Test类:

class Test {
  doOne = async () => {
    ...
  };
}

const testOne = async () => {
  ...
}

module.exports = {
  testInstance: new Test(),
  testOne,
  Test
};

导入时可以按需解构使用:

const { testInstance, testOne, Test } = require('./你的文件路径');
// 调用实例方法:testInstance.doOne()
// 调用函数:testOne()
// 新建Test实例:const newTest = new Test();

2. 能否同时导出Test类与testOne函数?

完全可以,上面的方法二已经实现了这个需求。如果你的环境支持ES模块语法,也可以用更简洁的写法:

export class Test {
  doOne = async () => {
    ...
  };
}

export const testOne = async () => {
  ...
}

// 同时导出默认的Test实例
export default new Test();

导入时的用法:

import testInstance, { Test, testOne } from './你的文件路径';

内容的提问来源于stack exchange,提问作者upadhya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 15:06:29