JavaScript中闭包的概念及应用

今天学习到JavaScript的闭包来记录一下,苦尽脑汁办小时没想明白怎么写的怎么实现还是面向浏览器编程后理解了,为了方便大家理解我再浅层刨析应该就知道了

<button type="button" onclick="bFunction()">计数!</button>

<p id="demo">0</p>

<script>
var ad = (function () {
  var numbt= 0;
  return function () {numbt+= 1; return numbt;}
})();

function bFunction(){
  document.getElementById("demo").innerHTML = ad();
}
</script>

这样看肯定是看不懂了!

先说一下闭包的概念,闭包的概念就是类似于类的封装,封装类里面的私有属性,如果不进行封装那么一个时钟类的计时部分会被外部访问  原本是0开始,可是外部可以直接修改10开始这样

原因是js里面要么是全局变量,要么是局部变量,那没办法了.

全局变量生存周期活得和您的应用程序(窗口、网页)一样久。

局部变量生存周期活得不长。它们在函数调用时创建,在函数完成后被删除。

既然如此 那就把函数封装成一个全局变量不就可以实现这种功能

var ad= add();

function add(){

        var numbt=0;

        return function(){return numbt++;};

}

本来函数调用过一次就会销毁,那就把它用变量保存下来,然后这个函数的返回值是内部调用私有变量的匿名函数,每次只会返回内部的值

原创文章转载请备注!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值