本篇文章给大家带来的内容是关于Javascript闭包的代码示例,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
闭包
当内部函数被保存到外部时,将会生成闭包。闭包会导致原有作用域链不释放,造成内存泄露
//内部的函数被返回到外部,必然形成闭包function a(){function b(){var b = 234;console.log(a);}var a = 123;return b;}var demo = a();demo(); // -->123
登录后复制
function test1(){var num = 100;function test2(){num ++;console.log(num);}return test2;}var demo1 = test1();demo1(); //101demo1(); //102
登录后复制
//function test(){ var arr = []; for(var i = 0; i最后函数执行的时候会调用test的AO中的i
AO{i = 10;}登录后复制
解决方案:立即执行函数
function test() { var arr = []; for(var i = 0; i1.实现公有变量
eg:函数累加器
function add(){var count = 0;function demo(){count ++ ;console.log(count);}return demo;}var counter = add();counter();登录后复制
2.可以做缓存
eg:eater
function test2(){var food = 'apple';var obj = {eatFood : function(){if(food != ""){console.log("I am eatting " + food);food = '';}else{console.log("There is nothing! empty!");}},pushFood : function(myFood){food = myFood;}}return obj;}var obj = test2();obj.eatFood();obj.eatFood();obj.pushFood('banana');obj.eatFood();登录后复制
3.可以实现封装,属性私有化。
eg: Person();
以上就是Javascript闭包的代码示例的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2732726.html