有人可以解释定义jQuery插件时语法的含义吗?

我正在阅读有关创建自定义jQuery插件的内容,并且对于以下语法的含义有点困惑:

(function($){ $.fn.truncate = function() { return this.each(function() { }); }; })(jQuery); 

我知道函数($)是一个接受$的匿名函数。 我只是不太明白为什么这个函数包含在括号中以及如何使用jQuery中的以下括号集…工作。

假设$由jQuery库拥有是不安全的。 一些其他javascript库/用户可能/确实将该标识符用于其他目的。 但是, jQuery总是jQuery库(禁止任何恶人)。

这个匿名函数通过将$快捷方式设置为匿名函数的本地参数,方便而安全地将$快捷方式公开为jQuery。 由于参数将仅覆盖函数范围的任何全局变量,因此不会影响其外的任何其他用户/库代码。

最后,在执行匿名函数的地方, jQuery作为填充$的第一个参数传入。

因此,当简化时,这只是插件开发人员采用的一种捷径,以便他们可以安全可靠地使用$ ; 如果你不介意在任何地方使用jQuery ,那么这是完全可选的。

使用jQuery的以下参数只是执行匿名函数并将jQuery作为$参数传递。 这确保$ = jQuery只是加入窗口。$不等于jQuery。

这是对代码的重写,可能更有意义:

 function myFunc($) { $.fn.truncate = function() { return this.each(function() { }); } myFunc(jQuery); 

周围的括号创建一个匿名函数, $符号引用全局jQuery对象。

$.fn.truncate – 这意味着您正在扩展jQuery对象以包含一个名为truncate的新函数。
用法 $( '#someElement' ).truncate();