JavaScript 闭包在封装函数时的简单分析
2009-11-28 00:00
567 查看
wbkt2t最近发现了一个新名词:闭包。(自己落后了,要好好学习才行),baidu、google看了一下原理和实例,也明白了闭包的强大。JQuery也把闭包发扬光大了,网上一些个人开发的框架都是用了闭包了功能。知道了闭包的原理和使用发放,于是自己小小试验了一把,带着疑惑:使用闭包有什么好处?不使用会出现什么后果?写下了以下代码,也希望大家给小弟一些解答
使用闭包:
实例1
不使用闭包代码:
实例2
我的理解是:
.使用闭包后可以防止命名冲突,如在实例1中,如果$Darren变量冲突只需改两处地方,而在实例2中,如果$Darren2变量冲突则需该多处(这里是3处)
.使用闭包后,即使匿名函数执行完毕,但是还可以使用其内部的函数。
还有我有个疑惑就是:
为什么大家都推荐实例1的写法,实例1和实例2哪个更好,为什么?一样能实现的功能。
希望大家指点小弟,这样理解对不对?
还有什么补充的。
谢谢大家~~~
使用闭包:
实例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中的函数
- javascript中的函数,闭包简单介绍
- 【转】JavaScript中的匿名函数及函数的闭包
- 韩顺平 javascript教学视频_学习笔记9_js函数调用过程内存分析_js函数细节
- 如何用最简单最快的方法判断一个BMP图片是否为黑白图片?我现在是全图片scanline 然后再加以分析,太慢了,有没有直接的函数可以做到呢?
- JavaScript深入浅出————函数和作用域(闭包,作用域)(七)
- <<JavaScript编程全解>>阅读笔记之函数与闭包
- 通过javascript的匿名函数来分析几段简单有趣的代码
- 通过javascript的匿名函数来分析几段简单有趣的代码
- FFmpeg函数简单分析:av_find_decoder()和av_find_encoder()
- JavaScript 中函数节流和函数去抖的讲解(简单易懂推荐阅读)
- JavaScript中的匿名函数及函数的闭包[转载]
- JavaScript中的匿名函数及函数的闭包
- JavaScript进阶练习及简单实例分析
- javascript 简单高效判断数据类型 系列函数 By shawl.qiu
- javascript的函数,作用域,闭包
- javascript中函数的闭包自调用