closure闭包

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

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

向div中添加多个按钮


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


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

解决方式一

jpg

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

解决方式二


jpg

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

附前辈两篇文章

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

彻底搞懂JS闭包各种坑

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

你可能感兴趣的:(closure闭包)