1

当我们开始计划构建一个显示模块模式时,构建模式以这种方式开始的最大区别是什么......

var MODULE = function() {}();

并构建这样的模式......

var MODULE = (function() {})();

好处?目的?

另外一个问题是,这些技术中的任何一种是否都允许 jQuery 在不将 $ 传递给它们的情况下进行处理?

感谢您的任何反馈!

4

1 回答 1

2

有一个jsHint选项可以在函数未包含在括号中时发出警告。该选项的描述如下:

“此选项禁止使用立即函数调用而不将它们包装在括号中。包装括号有助于您的代码读者理解表达式是函数的结果,而不是函数本身。”

至于你关于 jQuery 的问题;是的,jQuery 将可用,前提是您已经包含它,显然。话虽如此,我仍然建议将“$”或“jQuery”作为参数传递给您的函数。如果不这样做,则每次引用它时,引擎都必须进入父范围才能找到它。没什么大不了的,但效率较低,特别是如果您大量使用 jQuery。如果你传入它,那么 jQuery 会在你的函数范围内定义,并且不需要在祖先的范围内搜索它。

于 2012-10-11T16:04:31.147 回答