closure闭包

闭包是指有权访问另一个函数作用域中的变量的函数,创建闭包的常见方式,就是在一个函数内部创建另一个函数,内部的函数即为闭包函数

如果内部函数使用外部函数的变量,在外部函数执行完成之前变量会有改变时,内部只能获取最后改变的值,无法获取定义时的值,就会产生闭包

向div中添加多个按钮


无论点击哪个按钮都是输出6


解决方式一不在函数内部定义函数,将函数定义在外面,在函数内部调用

解决方式一

jpg

解决方式二:为元素附加属性,用来存储变量

解决方式二


jpg

JS小白看看视频看看书简单的理解,还有好多东西没有理解,还有好多东西需要学习至于什么是闭包,我也不清楚,后续有更深的理解会继续更新

附简书前辈两篇文章

面试官问我:什么是JavaScript闭包,我该如何回答?   →外部函数调用之后其变量对象本应该被销毁,但闭包的存在使我们仍然可以访问外部函数的变量对象,这就是闭包的重要概念。

彻底搞懂JS闭包各种坑

《JavaScript高级编程》书中建议:由于闭包会携带包含它的函数的作用域,因为会比其他函数占用更多内容,过度使用闭包,会导致内存占用过多。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容