我知道Module Pattern在Javascript编程中非常有用和强大。 我第一次在Eric Miraglia's blog中认识到了这种模式,但我想知道一件事。 在解释模块模式的其他博客和文章中,我注意到他们的示例代码与Eric的文章略有不同,也就是说,他们使用括号而不是函数语句的函数表达式,例如,the article from ben cherry是其中之一。
使用函数表达式而不是函数语句是否有任何特定原因? 请用简单的方法解释一下,我刚刚进入Javascript编程世界:)
答案 0 :(得分:2)
Miraglia模式是相同的,定义了一个匿名函数并执行它。不同之处在于,为了使用模块的功能,您必须在某处具有对实例的引用。将模块分配给全局变量(YAHOO。*)是一种将引用保留在全局已知位置的方法,对于框架(如YUI)尤其重要。
有时你不需要那个参考。例如,如果您正在为网页编写JavaScript,则通常使用选择器(ID /类型等)将事件绑定到函数。这实际上消除了对模块函数的任何全局引用的需要。
希望有意义......