这更像是一个关于我的 JavaScript 代码结构的一般性问题,以及我是否朝着结构良好的代码的正确方向前进。
我得到的当前代码:
(function (myNamespace, $, undefined) {
myNamespace.className = {
init:function { } // do stuff
}
} (window.myNamespace= window.myNamespace|| {}, jQuery)));
(function (myNamespace, $, undefined) {
myNamespace.className2 = {
init:function { } // do stuff
}
} (window.myNamespace= window.myNamespace|| {}, jQuery)));
显然,使用上面的代码,我可以使用相同的命名空间(根据页面/站点部分)并通过myNamespace.className.init()
etc 调用它们。如果我愿意,我也可以将它们组合起来,但我封装了类以提高可读性。
现在,我一直在阅读http://addyosmani.com/largescalejavascript/关于调解员的概念。我的第二个问题是何时(以及是否)我应该使用这些?从 className2 显然我可以做到:
myNamespace.className2 = {
init:function { myNamespace.className.init() } // do stuff
}
那么,为什么这会像订阅 className 一样mediator.subscribe("classNameInit")
并在 className 中发布该事件呢?
我非常愿意接受有关我的代码结构的建议,因为这是我在改变编写 JavaScript 的方式时需要做的事情。