我在创建自定义的jQuery插件读了。我像下面的语法意义有点糊涂:有人可以解释定义jQuery插件时语法的含义吗?
(function($){
$.fn.truncate = function() {
return this.each(function() {
});
};
})(jQuery);
据我所知,函数($)是接受$匿名函数。我只是不明白为什么这个函数被包裹在括号里,以及下面这些括号中的jQuery如何工作。
我在创建自定义的jQuery插件读了。我像下面的语法意义有点糊涂:有人可以解释定义jQuery插件时语法的含义吗?
(function($){
$.fn.truncate = function() {
return this.each(function() {
});
};
})(jQuery);
据我所知,函数($)是接受$匿名函数。我只是不明白为什么这个函数被包裹在括号里,以及下面这些括号中的jQuery如何工作。
这是不是安全的假设,$
由jQuery库所有。其他一些JavaScript库/用户可能/确实将该标识符用于其他目的。然而,jQuery
始终是jQuery库(禁止任何恶作剧者)。
这个匿名函数通过使它成为匿名函数的本地参数,便捷地安全地公开$
捷径。由于参数将仅覆盖函数范围内的任何全局变量,因此不会影响其他任何用户/库代码。
最后,在执行匿名功能的情况下,jQuery
作为第一个参数传入以填充$
。
因此,当这些只是插件开发人员采取的一种捷径,以便他们能够安全可靠地使用$
;如果你不介意在全球各地使用jQuery
,那么这是完全可选的。
周围的圆括号创建一个匿名函数,$
符号引用全局jQuery
对象。
$.fn.truncate
- 这意味着您将jQuery
对象扩展为包含一个名为truncate
的新函数。
使用$('#someElement').truncate();
与jQuery只是执行匿名函数和jQuery的传递为$参数以下参数。这可以确保$ = jQuery只是在窗口中显示。$不等于jQuery。
这里是代码,可能更有意义的重写:
function myFunc($) {
$.fn.truncate = function() {
return this.each(function() {
});
}
myFunc(jQuery);
典型程序员回答:是的,有人可以。 – 2010-06-04 16:58:03