我只是想知道在处理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项目中的新对象?您如何管理它并处理这种差异?
答案 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");