Js闭包理解
在很多面试题中都会问什么是js的闭包,为什么需要使用闭包,使用闭包的优缺点!
我在面试其他人的时候也喜欢问这个问题,回答的也是千奇百怪,现在就总结一下我对闭包的理解。
闭包是一种概念,这种概念比较复杂,很多地方的定义不尽相同,我的理解是:闭包是能读取函数内部变量的函数,也就是定义在函数内部的函数,成为函数内部元素与外部沟通的桥梁。
闭包的概念是有js的链式作用域引出来的,所谓链式作用域就是指:内部函数可以读取到所有的外部变量,而外部变量或者函数不能读取到函数的内部变量,变量的作用域是由代码块决定的。
参考资料:
http://www.ruanyifeng.com/blog/2009/08/learning_javascript_closures.html