各种开口,以创建揭示模块模式

时间:2012-10-11 15:48:16

标签: javascript design-patterns

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

var MODULE = function() {}();

并构建模式以便这样......

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

好处?目的

另外作为一个额外的问题,这些技术中的任何一种都允许jQuery处理而不将$传递给它们吗?

感谢您的反馈!

1 个答案:

答案 0 :(得分:2)

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

  

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

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