闭包得从底层理解

咱们开门见山从底层谈起,让你理解更透彻,简单

这篇博客不会像别的作者写的那样晦涩难懂,让你学完闭包感觉晕头转向,而是真正从底层去理解闭包,享受闭包的快乐

1.从作用域说起

先要区分全局变量和局部变量

全局变量和局部变量从出生,他们就是两个世界的。有同学说,不都是变量吗,这有啥区别呀。就好比,咱们普通人和思聪gg,他一出生就能开的起劳斯莱斯,普通人可能摸都没摸过,对就是我

记住,这个理解很关键,为下文理解做铺垫

Script翻译为全局的,Local翻译为局部的

全局变量a,从一出生就被放在Script中;而局部变量b,放在Local

这两个有区别:

放在Script中的,不会被垃圾回收机制销毁

放在Local中的,因为程序放在浏览器运行,会生成AO(js的临时活动对象),程序运行的时候,AO就会存储方法及里面的变量。方法执行完成后,就会被垃圾回收清理,回收。

注意: AO 是 Active Object 的简写,这样说大家似乎明白了吧

所以说,局部变量b在程序运行完会被销毁,外部自然不能访问

但是内部却能够访问外部的全局变量a,因为a没有被销毁

猜你喜欢

转载自blog.csdn.net/qq_48731430/article/details/121480826