扫码关注官方订阅号
全局变量会一直存在,除非手动释放。局部变量出了这个作用域就会释放,显然对内存提升有好处。那么闭包的变量,是像局部变量一样只能内部访问,但又会像全局一样在内存中始终存在是么
业精于勤,荒于嬉;行成于思,毁于随。
个人理解你说的对,变量是会一直存在,但是外层函数并不会。闭包主要是为了你能够访问变量,也能控制你如何访问变量,如何更新变量。
闭包变量肯定是在内存中的,要不然等你要用的时候怎么可以用呢?肯定是占用内存的
清掉访问变量的那个函数变量就释放了
会不会一直存在,要看你在嵌套的函数递归调用中有没引用
就像全局变量一样,如果释放了对闭包的引用,这个变量也会释放的。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
个人理解你说的对,变量是会一直存在,但是外层函数并不会。闭包主要是为了你能够访问变量,也能控制你如何访问变量,如何更新变量。
闭包变量肯定是在内存中的,要不然等你要用的时候怎么可以用呢?肯定是占用内存的
清掉访问变量的那个函数变量就释放了
会不会一直存在,要看你在嵌套的函数递归调用中有没引用
就像全局变量一样,如果释放了对闭包的引用,这个变量也会释放的。