2012-12-19 61 views
1

我遇到了JavaScript,命名空间和缩小/串联的几个问题。我无法控制(至少我不想有任何),以何种顺序将文件连接起来。使用一个命名空间函数,当给定一个字符串(比如'com.example.ExampleClass')时,它会简单地返回一个对象,当我需要另一个时,'class'可能不会被定义。在Javascript中对命名空间使用懒惰初始化

假设我有一个DocumentProvider对象,它需要来自EventDispatcher的功能。但是,在我当前的设置中,DocumentProvider在EventDispatcher之前连接在一起。我想在原型上定义这个功能,所以我不能在构造函数中扩展它。

所以,我所提出的解决方案是使用延迟初始化:

  • 定义顶级namespace(alias, factory)功能
  • 使用伪超载的命名空间您分配一个工厂到 指定名称或返回对象由工厂创建

或者我可以将它拆分为define(alias, factory)import(alias)。更好的可读性,更加污染全球空间。

我的问题是:我是否过度工作?对这个问题有更好,更简单,更“标准”的解决方案吗?命名空间功能(使用不同的实现)被添加到语言中的风险是什么?

回答

0

结账RequireJS它可以为您节省很多时间。

相关问题