我只是在处理 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 项目中的新对象?您如何管理并处理这种差异?
最佳答案
您通常不需要从函数(您的第二个代码片段)返回类。您可以直接导出类。
这可能是最好的方法:
测试.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");
关于javascript - 在node.js中使用es6类有用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52021468/