javascript闭包理解

关于javascript的闭包,牵涉作用域,因为js为词法作用域和对象调用作用域。

闭包就相当于,把一个私用属性类持久化的概念。

当一个嵌套函数被一个全局变量持有,而嵌套函数又引用了外围函数,这意味着外围函数的所有属性包括私有属性都被存储在了这个全局变量上,那么从某种程度上来说,实现了该外围函数的属性的持久化。而这个外围函数的属性不能被外部改变,只能通过嵌套函数访问。

其实相当于new 了一个对象给全局变量。

简单的例子,使用匿名函数来处理。

var uniqueId = (function(){

   var id  = 0;

   return function(){

     return id++;

   }

})();//只有立即执行才是将嵌套函数的持有对象为uniqueId。

类似,将匿名函数作为作为一个新建对象给到了uniqueId,但是uniqueId的函数体为嵌套函数的函数体。跟新建对象有一定的区别。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值