编写jquery插件中的闭包demo

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);
**/

相关推荐