为什么jquery不会污染全局命名空间?

时间:2012-01-05 22:18:13

标签: javascript jquery

这里说:

http://briancrescimanno.com/2009/09/24/how-self-executing-anonymous-functions-work/

  

看看jQuery的源代码,你会看到   整个库包含在一个单独的自执行功能中   分配给jQuery全局对象。

但是,由于jQuery是GLOBAL对象,它确实污染了全局命名空间,或者我错过了什么?

3 个答案:

答案 0 :(得分:5)

您没有正确阅读该博文中的下一句话。它没有声称有没有污染:

  

这正是jQuery不会像其他库那样污染全局命名空间的原因。

答案 1 :(得分:4)

在全球范围内只有一(2)个变量不被视为全球范围的污染。它就像一个名称空间,其他库很可能不会调用它们的命名空间'jQuery'(更可能是$)。甚至在那种情况下,jQuery通过实现noConflict函数来优雅地处理它。

答案 2 :(得分:0)

考虑替代方案也是有益的:如果全局范围内没有对象,那么对象在哪里? Javascript中的所有内容都有一个范围,因此如果$不在全局命名空间中,或者在另一个javascript对象中,则它是未绑定且无法访问的。这种情况应该是不可能的。每个对象都必须某处

如果javascript对象存在但没有作用域,它是否可用? 如果一棵树落在森林里,但周围没有人,它会发出声音吗?