首页 > 编程语言 > 详细

JavaScript中的闭包

时间:2017-01-07 17:55:12      阅读:109      评论:0      收藏:0      [点我收藏+]

闭包:是指有权访问另外一个函数作用域中的变量的函数。创建闭包的常见方式就是在一个函数内部创建另外一个函数。

在javascript中没有块级作用域,一般为了给某个函数申明一些只有该函数才能使用的局部变量时,我们就会用到闭包,这样我们可以很大程度上减少全局作用域中的变量,净化全局作用域。

闭包的好处:
不增加额外的全局变量,
执行过程中所有变量都是在匿名函数内部。

使用闭包有如上的好处,当然这样的好处是需要付出代价的,代价就是内存的占用。

//闭包的基本写法:
(function(){do someting})();
//这个你就理解为定义一个匿名函数并立即执行
//带参数的话就这样:
(function(形参){do someting})(实参);
(function($){
    $("div p").click(function(){alert("cssrain!")});
})(jQuery);       //一个闭包
就是等于
function tempFunction($){  //创建一个以$为形参的函数
     $("div p").click(....);
}
tempFunction(jQuery);         //传入实参jQuery执行函数.
     //变量的作用域
        function bobo() {
            var a = 1; //只在bobo函数体中有效
            b = 1; //声明了一个全局变量,在整个<script>块中有效
            function boboSub() {  //声明一个函数,它只在bobo函数中有效
                var c = 1; //只有boboSub函数声中有效
                c = c + a; //子函数中可以使用上级函数的变量
            }
        }

 

JavaScript中的闭包

原文:http://www.cnblogs.com/shy1766IT/p/6259727.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!