Ben*_*enR 15 javascript jquery
(function ($, undefined) {
. . .
})(jQuery);
Run Code Online (Sandbox Code Playgroud)
我到处都看到了这一点,但我不明白为什么我们将jQuery作为参数发送到自包含的函数中.jQuery已被引用.另外,为什么我们定义undefined为参数?
Ben*_*enM 16
传递$给匿名函数可确保命名空间受到保护(即不会与也使用$快捷方式的其他库冲突).
通常,undefined传递给函数以确保变量是真实的undefined.例如,请考虑以下代码exerpt:
undefined = '123';
if(myVar == undefined)
{
// Will only ever execute if myVar == '123'
}
Run Code Online (Sandbox Code Playgroud)
正如评论中所指出的,除非您正在编写插件或类似插件,否则使用jQuery(function($) { })可能是一种更好的方法,因为它可以保护$快捷方式并提供DOMReady事件,这意味着需要更少的代码来实现相同的结果.
如果您需要检查undefined,您可能还需要考虑使用$.noop().