闭包是什么:
闭包就是能够读取其他函数内部变量的函数。
由于在Javascript语言中,只有函数内部的子函数才能读取局部变量,因此可以把闭包简单理解成”定义在一个函数内部的函数”。
所以,在本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁。
闭包的用途:
最大用处有两个,1.可以读取函数内部的变量,2.让这些变量的值始终保持在内存中。
闭包给访问外部函数定义的内部变量创造了条件。也将关于函数的一切封闭到了函数内部,减少了全局变量是闭包的真实含义。
什么时候需要使用闭包:
当每次调用函数A时都要改变全局变量B,且B只与A有关。以往没有闭包时只能将B定义为全局变量,现在可以将B定义为A的内部变量,同时在A内部定义闭包C,并将C当值返回。
使用闭包要注意:
由于闭包会使得函数中的变量都被保存在内存中,内存消耗很大,所以不能滥用闭包。