我遇到了一些关于JavaScript,命名空间和缩小/连接的问题。我无法控制(至少我不想拥有)文件串联的顺序。使用命名空间函数,当给定一个字符串(例如'com.example.ExampleClass')时,它只返回一个对象,当我在另一个字符串中需要它时,可能不会定义'class'。
假设我有一个DocumentProvider对象,它需要EventDispatcher的功能。但是,在我当前的设置中,DocumentProvider在EventDispatcher之前连接。我想在原型上定义这个功能,所以我不能在构造函数中扩展它。
所以,我提出的解决方案是使用延迟初始化:
namespace(alias, factory)
函数或者我可以在define(alias, factory)
和import(alias)
中将其拆分。更易于阅读,更加污染全球空间。
我的问题是:我是否过度工程?这个问题有更好,更简单,更“标准”的解决方案吗?命名空间功能(具有不同的实现)被添加到语言中的风险是什么?