jQuery简洁的语法解释

hmq*_*esy 5 syntax jquery

我刚刚从Syncfusion 下载了jQuery Succinctly 免费电子书(这里),并开始查看示例.

我看到很多这类事情:

<script> (function ($)
{
    $('a').mouseenter(
        function () { alert(this.id); });
})(jQuery);
</script>
Run Code Online (Sandbox Code Playgroud)

我不确定为什么作者使用这种语法.该$对象被传递到匿名函数?为什么?什么是(jQuery)下面的匿名函数?

这只是一种避免与其他图书馆冲突的方法吗?在我看来,这些例子可以写得更"简洁":)

谢谢.

Thi*_*ter 7

它创建了一个闭包,$ === jQuery即使$.noConflict()用于删除全局jQuery $.

这允许您始终使用$而无需关心用户是否也使用诸如原型之类的框架也使用$.

闭包还有一个优点,即你的变量/函数不是全局的,除非你明确地将它们var设为全局(通过不使用和附加函数windowthis对象)