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

时间:2018-08-25 21:43:44

标签: javascript node.js requirejs es6-class

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

我正在考虑两种不同的方法来处理类

案例:无课

'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中,女巫在let g中是app.js所必需的。

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


案例:课程

'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()方法,是否必须声明一个类?即使我需要使用get()set(),也不必使用class。它的工作方式与class中相同。 两种方法都运作良好,没有任何问题或例外。

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

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

1 个答案:

答案 0 :(得分:2)

通常不需要从函数返回类(第二个代码段)。您可以直接导出类。

这可能是最好的方法:

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");