💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、豆包、星火、月之暗面及文生图、文生视频 广告
对闭包的理解? >[success] 我们知道函数内部能直接读取函数外部定义的变量,但是函数外部无法读取函数内部的变量,闭包在我看来,就是提供一种访问函数内部变量的桥梁。 闭包的好处和坏处? >[success] 使用闭包的好处是提供了访问函数内部变量的方式与避免造成全局变量污染。使用闭包的坏处是会造成内存消耗大,滥用闭包会导致内存泄露,造成页面奔溃。 为什么使用闭包会造成内存泄露吗? >[success] 函数的作用域链是在函数定义的时候创建的,在函数运行完成,销毁的时候消亡,这时它内部的变量就应该被销毁,内存被回收,但是闭包能让其继续延续下去,不被垃圾回收机制回收。由于变量都是维护在内存中的,这些变量数据就会一直占用着内存,最后超载使用内存,造成内存泄露。 闭包的例子: ``` var btn = document.getElementById('btn'); var inputs = document.getElementsByTagName('input'); for(var i = 0;i<inputs.length;i++) { (function(i) { inputs[i].onclick = function() { console.log(i) } })(i) } ``` [内容转载于掘金](https://juejin.cn/post/6979778428505423886#heading-4)