闭包 (举例)

闭包是一种在JavaScript中实现数据封装的技术,允许内部函数访问并操作外部函数的局部变量。通过函数嵌套,将内部函数返回,使得局部变量在外部仍可访问。闭包的条件包括:函数内部有函数、内部函数使用了外部变量并且外部函数返回了内部函数。这样,即使外部函数执行结束,局部变量也不会被销毁,而是继续存在。闭包有助于减少全局变量的使用,提高代码的组织性和安全性。同时,自执行函数常与闭包结合使用,用于立即执行内部函数并获取闭包环境下的内部函数实例。
摘要由CSDN通过智能技术生成

闭包

例:

 sum是函数作用域里面的变量,也称局部变量,外面没有办法直接访问这个局部变量,除非把sum最为返回值返回出去,外面才可以访问sum。

function add(){
   var  sum = 0;
   for ( var i = 0 ;i<arguments.length;i++){
      sum = sum + arguments[i];
   }
   return sum;
   }

既然是在函数中,可以把一个变量返回出去,那么自然也可以把一个函数返回出去。(3)

这个例子就是在函数里嵌套了另外一个函数(1),把一个函数返回出去。

function test(){
   return function(){
   }
}

函数作用域可嵌套,所以里面的函数作用域可以访问外面函数作用域中的变量。

function test(){
    var a = 0;
    return function(){
       console.log(a);
  }
}

test里定义了一个局部变量a,变量a属于test函数的函数作用域,最后返回的函数也属于test函数作用域,这个function(匿名函数)内部就有权限访问外部作用域。(2)

也就是说,变量a可以被function访问到。因为test函数返回的结果是一个函数,函数不去调用就不会执行里面的代码,所以如果需要执行内部函数的函数体,就必须要&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值