3

关于闭包--我自己的理解

  • 当调用一个函数A时,会创建这个函数的执行环境和对应的作用域链,当函数A调用结束时,会将执行环境和作用域链销毁(在内存中)。如果这个函数A返回了一个新的函数或者对象B,其中引用了函数A的变量,那么函数A的执行环境和作用域不会被销毁,因为返回的这个函数(或对象)B在其他执行环境中被调用时,仍然会访问之前函数A中的变量,这种情况就叫做闭包。

  • 由于使用闭包会导致函数调用结束后,其执行环境和对应作用域链无法立即销毁,仍然会占据内存空间,因此频繁使用闭包会占用大量内存。


jhhfft
590 声望40 粉丝

Write the Code. Change the World.