我正在阅读有关创建自定义jQuery插件的内容,并且对于以下语法的含义有点困惑:
(function($){
$.fn.truncate = function() {
return this.each(function() {
});
};
})(jQuery);
我知道函数($)是一个接受$的匿名函数。我只是不太明白为什么这个函数包含在括号中以及如何使用jQuery中的以下括号集...工作。
答案 0 :(得分:5)
以下jQuery参数只是执行匿名函数并将jQuery作为$参数传递。这确保$ = jQuery只是加入窗口。$不等于jQuery。
这是对代码的重写,可能更有意义:
function myFunc($) {
$.fn.truncate = function() {
return this.each(function() {
});
}
myFunc(jQuery);
答案 1 :(得分:4)
周围的括号创建一个匿名函数,$
符号引用全局jQuery
对象。
$.fn.truncate
- 这意味着您正在扩展jQuery
对象以包含名为truncate
的新功能。
用法 $( '#someElement' ).truncate();
答案 2 :(得分:3)
假设jQuery库拥有$
是不安全的。一些其他javascript库/用户可能/确实将该标识符用于其他目的。但是,jQuery
始终是jQuery库(禁止任何恶人)。
这个匿名函数通过使{匿名函数的本地参数成为jQuery,轻松安全地将$
快捷方式公开为jQuery。由于参数将仅覆盖函数范围的任何全局变量,因此不会影响其外的任何其他用户/库代码。
最后,执行匿名函数的地方jQuery
作为填充$
的第一个参数传入。
因此,当简化时,这只是插件开发人员采用的快捷方式,以便他们可以安全可靠地使用$
;如果您不介意在任何地方使用jQuery
,那么这完全是可选的。