JavaScript中的闭包

本文介绍了JavaScript中的闭包概念,解释了闭包是如何实现的以及如何使用闭包来管理变量的作用域,减少全局变量的污染。文章还展示了闭包的基本写法,并通过实例说明了其在实际开发中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

在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; //子函数中可以使用上级函数的变量
            }
        }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值