hackcat 2013-12-18
demo中的代码,需要jquery库文件支持
//闭包特性,
//1. 避免内部临时变量影响全局空间,
//2. 插件内部继续使用$作为jquery别名
/**
定义一个匿名函数--闭包
**/
;(function($){//$作为匿名函数的参数
//这里编写插件代码,可以继续使用$作为jquery的别名
/**
定义一个局部变量foo,仅函数内部可以访问,外部无法访问
--利用闭包特性,可以避免内部临时变量影响全局空间,又可以再插件内部继续使用$作为jquery的别名
--独立,有关联,且无污染
**/
var foo;
var bar = function(){
foo="aa";
alert(foo);
/**
1.匿名函数内部的函数都可以访问foo
2.匿名函数的外部调用bar()的时候,也可以再bar()内部访问到foo,但是在匿名函数外部直接访问foo是不可以的
**/
}
/**
功能:扩展匿名函数内的私有函数bar()到全局可访问范围
调用:在匿名函数外通过jQuery.BAR()来访问闭包内定义的函数bar(),且,bar()必然是可以访问foo私有变量的
**/
$.BAR=bar;
})(jQuery);//将jquery作为实参传递给匿名函数
$(function(){
$.BAR();
})
/**
以上概念简单介绍了jquery的闭包概念,显然闭包不是几句话能讲清楚的
但对于插件的制作来说,只需要知道所有插件的代码必须放在下面的代码内部就可以了
;(function(){
//填写jquery插件代码
})(jQuery);
**/