避免使用javascript依赖性污染全局命名空间

时间:2011-03-23 21:31:21

标签: javascript

我正在构建一个javascript库,并希望在不污染全局命名空间的情况下烘焙各种依赖项(例如,jQuery,Google Closure等)。这一点尤其重要,因为其他人可能已经在使用这些库的不同版本。

据我所知,大多数这些库都直接附加到window对象,因此我不能简单地将它们放在匿名函数中。

这个问题有没有一般解决方案?

1 个答案:

答案 0 :(得分:2)

我相信您需要修改库源代码才能执行此操作,替换其代码:

window.jQuery = function(){ ... }

使用:

myNamespace.jQuery = function() { ... }

对全局jQuery对象(和别名)的任何引用也必须是命名空间。每个JS库都必须采取类似的措施。

在我看来,这对于它的价值来说太麻烦了。为每个js库占用一个全局变量是可以接受的。