首页 > 解决方案 > Node 中的 ES6 类和函数使用

问题描述

我一直在学习一些 React,并且一直在使用 ES6 类来编写基于类的组件。我正在做一个小节点项目,但这些语法都不起作用。

class Handler {
  handleReq = () => {
    this.ctx = ctx;
  };

  testFunc = async () => {

  };
}

export default (HandleReq = Handler.prototype.handleReq);

这种语法有什么问题?它不在Node中运行吗?我必须安装esm才能使导入/导出语法正常工作,但这仍然无法编译。

标签: javascriptnode.jsecmascript-6

解决方案


类字段仍处于提案阶段(已经是第 3 阶段,因此它们将很快成为语言的一部分)。这意味着一些运行时可能已经支持它们,但它们还没有必要。要在今天可靠地使用提案,您必须使用 BabelJS 将其转译下来

这会将您的代码转换为以下 ES6:

 class Handler {
  constructor() {
    this.handleReq = () => {
      this.ctx = ctx;
    };

    this.testFunc = async () => {
    };
   }
 }

因此,这些方法实际上只存在于构造后的实例上,而不存在于Handler.prototype.


推荐阅读