我是jquery的新手。当我浏览示例jquery插件时,我注意到各种函数声明语法。这些如下:
(function($){
function function_name1()
{
//function body
}
var _function_name2 = function(options){
//function body
};
$.fn.function_name3 = {
function_name4:function(){ //function body },
//function body
};
$.fn.function_name5 = function(){
//function body
}
}(jQuery));
我只知道function_name5
语法。所以请帮助我找出其他人之间的区别。谢谢。
答案 0 :(得分:1)
以下实际上是一种函数语法
function function_name1()
{
//function body
}
为了避免上述函数属于globe范围,我们使用如下的立即函数调用来包装它,这意味着函数本身将立即被调用。
(function($){
....
}(jQuery));
下面一个基本上是一个函数变量,称为匿名函数。
var _function_name2 = function(options){
//function body
};
原因是因为当函数内部发生错误时,堆栈跟踪不会显示变量名称,而是显示为匿名函数。但是您可以使用以下语法获取相同的函数名称。
var _function_name2 = function _function_name2(options){
//function body
};
下面的实际上并不是直接调用的函数,而是使用任何dom元素或元素数组调用它们,函数内的$(this)将返回相同的dom元素。这些通常称为jquery插件。
$.fn.function_name5 = function(){
//function body
}
希望你理解。