Полезно ли использовать класс es6 в node.js? - PullRequest
0 голосов
/ 26 августа 2018

Мне просто интересно, работая над проектами 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 голосов
/ 26 августа 2018

Обычно вам не нужно возвращать класс из функции (ваш второй фрагмент кода). Вы можете просто напрямую экспортировать класс.

Вероятно, это лучший способ сделать это:

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