js闭包(closure),个人理解

Posted Brook.Zhao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js闭包(closure),个人理解相关的知识,希望对你有一定的参考价值。

一、闭包概念理解

  各种专业文献上对js"闭包"(closure)定义非常抽象,贼难看懂。我的理解是,闭包就是能够读取某函数内部变量的函数。由于在javascript语言中只有在函数内部的函数才能读取局部变量,因此可以把闭包简单理解成"定义在一个函数内部的函数"。所以,在本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁。

 

二、用途

  闭包可以用在很多地方。但它最大用处有两个,一个是前面提到的可以读取函数内部的变量,另一个就是让这些变量的值始终保持在内存中。

 

三、使用闭包注意事项

  1、由于闭包会使得函数中的变量都被保存在内存中,内存消耗很大,所以不能滥用闭包,否则会造成网页的性能问题。

  2、闭包会在父函数外部改变父函数内部变量的值,慎重使用。

以上是关于js闭包(closure),个人理解的主要内容,如果未能解决你的问题,请参考以下文章

javascript深入理解js闭包(个人理解,大神勿喷)

深入理解 —— js闭包

前端js精简面试题(个人理解篇)

前端js精简面试题(个人理解篇)

javascript深入理解js闭包

深入理解JS闭包