2010-06-04 89 views
0

我在创建自定义的jQuery插件读了。我像下面的语法意义有点糊涂:有人可以解释定义jQuery插件时语法的含义吗?

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

据我所知,函数($)是接受$匿名函数。我只是不明白为什么这个函数被包裹在括号里,以及下面这些括号中的jQuery如何工作。

+1

典型程序员回答:是的,有人可以。 – 2010-06-04 16:58:03

回答

3

这是不是安全的假设,$由jQuery库所有。其他一些JavaScript库/用户可能/确实将该标识符用于其他目的。然而,jQuery始终是jQuery库(禁止任何恶作剧者)。

这个匿名函数通过使它成为匿名函数的本地参数,便捷地安全地公开$捷径。由于参数将仅覆盖函数范围内的任何全局变量,因此不会影响其他任何用户/库代码。

最后,在执行匿名功能的情况下,jQuery作为第一个参数传入以填充$

因此,当这些只是插件开发人员采取的一种捷径,以便他们能够安全可靠地使用$;如果你不介意在全球各地使用jQuery,那么这是完全可选的。

4

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

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

5

与jQuery只是执行匿名函数和jQuery的传递为$参数以下参数。这可以确保$ = jQuery只是在窗口中显示。$不等于jQuery。

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

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

myFunc(jQuery); 
相关问题