JavaScript 闭包在封装函数时的简单分析

 更新时间:2009年11月28日 01:54:47   作者:  
近才开始系统的研究js,对js的兴趣源于对JQuery的应用。之前只会用js做简单的计算函数,后来由于需要做特效,故接触JQ,看着API,基本的特效都能完成,但相反,如果用js去实现,估计自己很难写得出来,所以下定决心系统的看看js。
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哪个更好,为什么?一样能实现的功能。

希望大家指点小弟,这样理解对不对?
还有什么补充的。
谢谢大家~~~

相关文章

  • 原生js实现移动端瀑布流式代码示例

    原生js实现移动端瀑布流式代码示例

    这篇文章主要为大家分享了原生js实现移动端瀑布流式代码示例,对瀑布流布局感兴趣的小伙伴们可以参考一下
    2015-12-12
  • JS实现随机抽取三人

    JS实现随机抽取三人

    这篇文章主要为大家详细介绍了JS实现随机抽取三人,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-11-11
  • 谈谈JavaScript中的函数

    谈谈JavaScript中的函数

    这篇文章主要介绍了JavaScript中的函数的相关资料,帮助大家更好的理解和学习JavaScript,感兴趣的朋友可以了解下
    2020-09-09
  • bootstrapTable+ajax加载数据 refresh更新数据

    bootstrapTable+ajax加载数据 refresh更新数据

    这篇文章主要为大家详细介绍了bootstrapTable+ajax加载数据,以及refresh更新数据,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-08-08
  • js实现九宫格拼图小游戏

    js实现九宫格拼图小游戏

    本文主要分享了js实现九宫格拼图小游戏的示例代码。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • js列举css中所有图标的实现代码

    js列举css中所有图标的实现代码

    最近在做一个通用的配置模块。配置模块中必然要对系统的菜单、功能模块、权限资源等进行配置,为了更好的用户体验,图标是必不可少的!
    2011-07-07
  • 基于JavaScript实现交互式博客

    基于JavaScript实现交互式博客

    在Web开发中,JavaScript(JS)是一种至关重要的编程语言,它使网页具有交互性,本文主要介绍了如何使用JavaScript实现一个交互式博客,需要的可以了解下
    2024-01-01
  • 一文详解Web Audi 绘制音频图谱

    一文详解Web Audi 绘制音频图谱

    这篇文章主要为大家介绍了Web Audi 绘制音频图谱实现示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • 详解JS中的对象字面量

    详解JS中的对象字面量

    这篇文章主要介绍了JS中的对象字面量,对ES6感兴趣的同学,可以参考下
    2021-05-05
  • JS页面延迟执行一些方法(整理)

    JS页面延迟执行一些方法(整理)

    一般在JS页面延迟执行一些方法,本文整理了一些,大家可以尝试操作下
    2013-11-11

最新评论