为什么我应该在自包含函数中引用 jQuery
Why should I reference jQuery in a self contained function?
(function ($, undefined) {
. . .
})(jQuery);
我到处都能看到这一点,但我不明白为什么我们将 jQuery 作为自包含函数中的参数发送。 jQuery已经被引用。另外,为什么我们将undefined
定义为参数?
将$
传递给匿名函数可确保命名空间受到保护(即不与也使用 $
快捷方式的其他库冲突)。
通常,undefined
传递给函数以确保变量真正undefined
。例如,请考虑以下代码执行:
undefined = '123';
if(myVar == undefined)
{
// Will only ever execute if myVar == '123'
}
正如评论中所指出的,除非您正在编写插件或类似的东西,否则使用 jQuery(function($) { })
可能是一种更好的方法,因为它可以保护$
快捷方式并提供 DOMReady 事件,这意味着实现相同结果所需的代码更少。
如果需要检查undefined
,您可能还需要考虑使用 $.noop()
。
$
或undefined
的值可能会被后续代码更改,例如。 如果要混合多个 JS 库,或使用多个版本的库。 通过捕获您自己的$
和undefined
副本,您可以防止这种情况。
(function ($, undefined) {
. . .
})(jQuery);
这样,您就可以确定 $ 是函数中的 jQuery(无论您的脚本中有什么 jQuery)。它不会阻止你覆盖jQuery变量,所以只有在你真正需要它时才使用它(或者你正在创建一个插件并分发一个jquery插件)。
至于未定义,它将强制未定义实际上是未定义的,因为未定义在某些js引擎中可以被覆盖。
相关文章:
- 传递引用 jQuery 后无法访问元素属性
- 正确引用JQuery
- 如何从我的HTML/JavaScript应用程序中引用jQuery
- 如何从aspx页面引用jquery函数
- 未定义的引用-jQuery选择器与JavaScript变量
- 引用 jQuery UI 不起作用
- 为什么我无法编译引用 jquery.d.ts 的文件
- 如何动态引用 jQuery 插件实例
- 从代码隐藏引用 jquery 库
- 引用jquery中Init函数中的设置对象
- 如何在其内部引用jQuery对象'的方法调用
- 我如何在ruby中使用cgi方法引用jquery库
- 为什么我不能在回调中引用jQuery对象
- 在外部js文件中引用jQuery事件处理程序
- 在c#代码中引用jquery变量(ASP.净MVC)
- 动态引用JQUERY中的子元素
- 是否可以引用jQuery UI对话框z索引计数器
- 在HTTPS安全页面上引用jQuery CDN
- 为什么我应该在自包含函数中引用 jQuery
- 我如何使用TypeScript和DefinitelyTyped引用jQuery选择器