山西p2p网站建设app网站与普通网站的区别
web/
2025/9/27 6:34:25/
文章来源:
山西p2p网站建设,app网站与普通网站的区别,网站制作涉及哪些方面,品牌建设的好处JavaScript闭包 前言概念代码实例以及讲解闭包作用闭包缺点 前言
本文主要讲解JavaScript中的闭包#xff0c;闭包是什么#xff1f; 闭包#xff08;closure#xff09;是一个函数以及其捆绑的周边环境状态#xff08;lexical environment#xff0c;词法环境#xff… JavaScript闭包 前言概念代码实例以及讲解闭包作用闭包缺点 前言
本文主要讲解JavaScript中的闭包闭包是什么 闭包closure是一个函数以及其捆绑的周边环境状态lexical environment词法环境的引用的组合。换而言之闭包让开发者可以从内部函数访问外部函数的作用域。在 JavaScript 中闭包会随着函数的创建而被同时创建。 概念
简而言之闭包就是一个函数体内嵌套了一个子函数体而这个子函数体由于js的上下文作用域关系它能取到上级函数的变量并且做判断这就意味着在子函数中父函数的值并没有被标记清理而是延申到了子函数中优点是可以继续使用该函数变量缺点也很明显无法判断该变量是否还需要所以一直无法清理造成内存冗余和内存泄漏问题。
代码实例以及讲解
示例一 function father(){let a1let b2console.log(a);//1function display(){let b3console.log(a,b);//1 3}display()console.log(b);//2}father()上述代码中中display就是father函数的闭包display函数调用了father函数中的a变量可以成功调用father函数的a变量并且定义了一个b变量在diaplay函数中覆盖了father函数中的b变量覆盖成功但当跳出diaplay函数后发现在display中的b变量已经被清理了在函数头中被定义在函数尾中被清理而father函数中的b变量因还没有到达father函数尾就打印所以它仍旧可以被打印出来。 示例二
function add(a,b){return function(){a;return ab;}
}
let numadd(1,2)
console.log(num());//4想让两个参数相加其中第一个参数先加1后相加那么我们可以通过闭包实现这个闭包可以放在父函数的返回值中这样就可以把add(1,2)赋值给一个变量然后再调用这个变量则实现了这个效果。
闭包作用
隐藏变量延长函数内变量生命周期让函数外部可以调用到函数内部数据
闭包缺点
延长了函数内变量生命周期局部变量没有释放内存不会被垃圾回收机制回收导致内存占用时间过长。可能造成内存泄漏
所以要尽量避免使用闭包且使用闭包时要及时进行释放处理。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/82598.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!