在 node.js 中使用 es6 class 有用吗?

Is using es6 class in node.js useful?

我只是在处理 node.js 项目时想知道。我是否应该在 function 中声明一个 class,以便像 let task = new Task(params); 那样全局使用它?

我正在考虑两种不同的方式来处理 classes

个案:无class

'use strict'

/**
 *
 * @param taskId
 * @param timeStamp
 * @constructor
 *
 */
function task(taskId, timeStamp) {

  this.taskId = taskId;
  this.timeStamp = timeStamp;
}

/**
 *
 * type {task}
 *
 */
module.exports = task;

我在某处要求 task.js 作为 let task = require('./task.js');。例如,在 globals.js 中, 是必需的,因为 app.js 中的 let g

无论如何,它就像一个魅力一样工作,在其他地方创建一个新的 Task 就像我上面写的:let task = new g.task('someTaskId', varForTStamp);


案例:class

'use strict'

/**
 *
 * @constructor
 *
 */
function task() {

  class Task {
    
    /**
     *
     * @param taskId
     * @param timeStamp
     */
     constructor(taskId, timeStamp) {

       this.taskId = taskId;
       this.timeStamp = timeStamp;
     }

     //in task is no get or set method needed
   }

/**
 *
 * type {task}
 *
 */
 module.exports = task;

这里也是一样。使用相同的要求和定义在其他地方调用 new Task

如果我必须使用 get()set() 方法,是否必须声明 class?即使我需要使用 get()set(),我也必须使用 class。它的工作方式与 class 中的相同。 两种方式都很好,没有问题或异常。

但是requireJS,node.js的后台发生了什么?我应该使用某种技术来编写清晰的代码以获得更好的性能吗?

是否有更好的方法来处理 node.js 项目中的新对象?您如何管理它并处理这种差异?

您通常不需要从函数(您的第二个代码片段)return class。您可以直接导出 class.

这可能是最好的方法:

test.js:

class Test{
  constructor(info){
    this._info=info;
  }

  getInfo(){
    return this._info;
  }
}

module.exports=Test;

main.js:

const Test=require('./test');
const myTest=new Test("hello");
const myOtherTest=new Test("world");
console.log(myTest.getInfo());
console.log(myOtherTest.getInfo());

此外,您不必使用 global.js 文件。例如而不是做

const g=require('./global');
const myTest=new g.Test("abc");

你应该直接要求测试:

const Test=require('./test');
const myTest=new Test("abc");