今天学习到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++;};
}
本来函数调用过一次就会销毁,那就把它用变量保存下来,然后这个函数的返回值是内部调用私有变量的匿名函数,每次只会返回内部的值
原创文章转载请备注!