javascript - 这种自我引用风格是可接受的还是反模式的?
问题描述
我最近通过反复试验发现我可以创建像这样引用自己的模块(我正在使用 React,所以这是 ES6),它们看起来工作得很好(请参阅在 'CollectionManager' 中使用 'CollectionManger' '):
export const CollectionManager = {
collections: [],
createCollection: () => {
let collection = {id: Math.random()};
collection.doSomething = () => {
console.log(`Doing: ${collection.id}`);
};
CollectionManager.collections.push(collection);
}
}
};
对于我想要一个管理自身实例的对象的特殊情况,我真的很喜欢这种语法。这似乎比我见过的其他进行自我引用的方式(getter/setter,或类,甚至“this”)更直接,更简单,但我以前从未见过这种模式,我也没有知道这是否是因为它有点新,或者我只是偶然发现了一些碰巧看起来有效但在某种程度上是一个非常糟糕的主意的垃圾。
问:这可以接受吗?如果不是,为什么?
解决方案
推荐阅读
- javascript - JS中的罗马数字和阿拉伯数字字符串数组排序
- css - 如何使 Scroll 在 Firefox 中可见
- c# - 如何将 json 从 C# 应用程序传递到 Node.js 应用程序
- reactjs - Material-UI V0.20.2 和 React 16.8.3 自动完成,输入事件不会被触发以确认选择
- ios - 无法从 SuperView 中删除自定义 UIView
- powershell - 来自文件的powershell电子邮件正文
- javascript - 如果未登录,如何从 Chrome 检查隐藏记录区域内容
- reactjs - 开玩笑的错误,需要 Babel “^7.0.0-0”,但加载的是“6.26.3”
- xml - 使用 lxml 设置 XML 文档的属性
- leaflet - 单击传单标记时,Angular 7路由不起作用