javascript - 将类转换为函数
问题描述
我正在制作一个实时应用程序,并希望将此class
代码转换为function
.
下面的功能是否等效?从任何人都可以看到,将其保留为类而不是函数是否有好处?
class IdeaService {
constructor() {
this.ideas = [];
}
async find() {
return this.ideas;
}
async create(data) {
const idea = {
id: this.ideas.length,
text: data.text,
tech: data.tech,
viewer: data.viewer
};
idea.time = moment().format('h:mm:ss a');
this.ideas.push(idea);
return idea;
}
}
功能
function ideaService() {
let ideas = [];
async find() {
return ideas;
}
async create(data) {
const idea = {
id: ideas.length,
text: data.text,
tech: data.tech,
viewer: data.viewer
}
idea.time = moment().formate('h:mm:ss a');
ideas.push(idea);
return idea;
}
}
解决方案
尝试这个
let IdeaService = (function() {
let ideas = [];
async function find() {
return ideas;
}
async function create(data) {
const idea = {
id: ideas.length,
text: data.text,
tech: data.tech,
viewer: data.viewer
};
idea.time = moment().format('h:mm:ss a');
ideas.push(idea);
return idea;
}
return {
find,
create
}
})();
编辑!如果您希望此模块不在此文件运行时实例化,请删除 (); 在最后。所以函数是:
IdeaService = (function() {
});
并实例化它将是:
let ideaService = IdeaService();
推荐阅读
- angular - 使用 Angular Universal 将 Angular 8 应用程序转换为静态应用程序
- html - 如何将文本放在按钮的中心
- pkcs#7 - 如何批量解压 p7s/p7m 文件
- c# - 如何在不使用 CreateMissingTypeMaps 的情况下升级到 Automapper 9.0 进行查询(因为它已被弃用)?
- git - 合并从 dev 分支到所有功能分支的更改
- scala - Can I use scala type parameters with a val?
- angular - Angular ngFor 无法显示数据
- python - 在 PyCrypto 中重新创建一个 openssl 解密命令
- yii2 - Yii2:迁移不适用
- python - 绘制 f(x,y) = z = min(x,y) 创建 2D 三角形而不是 3D 曲面