手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >JavaScript 闭包在封装函数时的简单分析
JavaScript 闭包在封装函数时的简单分析
摘要:wbkt2t最近发现了一个新名词:闭包。(自己落后了,要好好学习才行),baidu、google看了一下原理和实例,也明白了闭包的强大。JQ...

wbkt2t最近发现了一个新名词:闭包。(自己落后了,要好好学习才行),baidu、google看了一下原理和实例,也明白了闭包的强大。JQuery也把闭包发扬光大了,网上一些个人开发的框架都是用了闭包了功能。知道了闭包的原理和使用发放,于是自己小小试验了一把,带着疑惑:使用闭包有什么好处?不使用会出现什么后果?写下了以下代码,也希望大家给小弟一些解答

使用闭包:

实例1

复制代码 代码如下:

var $Darren;

(function(){

var Obj={version:"1.0",author:"Darren"};

Obj.Add=function(arg1,arg2){

return (arg1+arg2);

}

Obj.Multi=function(arg1,arg2){

return (arg1*arg2);

}

$Darren=Obj;

})(); //匿名函数,并使其马上执行

alert($Darren.Add(6,2)); //结果 8

alert($Darren.Multi(3,5)); //结果15

不使用闭包代码:

实例2

复制代码 代码如下:

var $Darren2={version:"1.0",author:"Darren"};

$Darren2.Add=function(arg1,arg2){

return (arg1+arg2);

}

$Darren2.Multi=function(arg1,arg2){

return (arg1*arg2);

}

alert($Darren2.Add(6,2)); //结果 8

alert($Darren2.Multi(3,5)); //结果15

我的理解是:

.使用闭包后可以防止命名冲突,如在实例1中,如果$Darren变量冲突只需改两处地方,而在实例2中,如果$Darren2变量冲突则需该多处(这里是3处)

.使用闭包后,即使匿名函数执行完毕,但是还可以使用其内部的函数。

还有我有个疑惑就是:

为什么大家都推荐实例1的写法,实例1和实例2哪个更好,为什么?一样能实现的功能。

希望大家指点小弟,这样理解对不对?

还有什么补充的。

谢谢大家~~~

【JavaScript 闭包在封装函数时的简单分析】相关文章:

JavaScript实现表格点击排序的方法

JavaScript 预解析的原理及实现

JavaScript基于setTimeout实现计数的方法

JavaScript实现将UPC转换成ISBN的方法

JavaScript获得url查询参数的方法

Javascript实现飞动广告效果的方法

JavaScript实现的MD5算法完整实例

javascript实现简单的进度条

JavaScript实现斗地主游戏的思路

用JavaScript实现对话框的教程

精品推荐
分类导航