2012-02-25 90 views
2

我想知道是否只有使用一个名称空间或是否指定多个更好?是否存在任何关联的性能问题?多个javascript命名空间?

我的意思是

(function (myApp, $, undefined) { 

} (window.myApp = window.myApp || {}, jQuery)); 

,并指定功能/目的/属性的myApp命名空间或无论是从性能的角度来看比较有效的有myApp为常用功能等,然后有

(function (myAppSettings, $, undefined) { 

} (window.myAppSettings = window.myAppSettings || {}, jQuery)); 

等等等等?

编辑:澄清通用settingsmyAppSettings每@pimvdb非常正确的评论

+0

你的问题没有意义,你可以澄清更多 – Sarfraz 2012-02-25 14:02:05

+0

嘿谢谢:)我的意思是 - 有没有任何性能问题分配100或更多的函数myApp命名空间?如果是的话,最好简单地使用多个不同的命名空间?如'myApp'和'settings'等等,并分别给每个函数分配? – Andy 2012-02-25 14:03:18

+0

散列表中的100个项目是什么都没有。 – 2012-02-25 14:04:41

回答

1

通常浅树比深树好(引文from here)。所以,根据具体情况,可能最好使用多个命名空间。引用的文章声称,单个命名空间在性能方面可以忽略不计。

+0

嘿:)谢谢 - 链接被破坏了?如果你能解决这个问题,真的有兴趣阅读一下吗? – Andy 2012-02-25 14:04:34

+0

固定链接;) – KooiInc 2012-02-25 14:05:41

+0

伟大的链接。感谢堆 - 通常看起来它现在确定。我不是'YAHOO' - 所以我不认为我的树和他们的一样复杂!最后一段回答了我的问题:) – Andy 2012-02-25 14:10:43

0

我不认为这是从性能上看任何区别。在今天的实现中获取对象属性is O(1)

但是像settings这样的名字太普通了,最好不要让它与另一个图书馆的settings相冲突。由于这些设置是myApp的一部分,因此将其放入myApp对象中是最有意义的(也是最安全的)。

如果每个图书馆都将设置window.settings,那将是一个大问题。

+0

啊对 - 不过,只是一个例子,谢谢你的提示。一般来说,我打算使用'myAppSettings'等的派生类似 – Andy 2012-02-25 14:04:09