在学习javascript的过程中碰到的闭包这一概念,看了一些资料,觉得有句话对比总结的最到位:对象是附有行为的数据,闭包则是附有数据的行为。什么意思呢?非官方解释:闭包就是由函数及其引用环境组合成的实体,具体的说,就是在函数定义时一并捕获它的当前引用环境(大约就是各种变量调用),然后在函数调用时将这个引用环境覆盖上去,这样保证了函数定义和引用时的上下文环境相同。
回到Javascript,了解了闭包,我们说:Javascript中的所有函数都是闭包。实际上有一个最常见的闭包使用便是jQurey。我们使用jQuery是时写
成:
(function($){
......
......
})(jQuery);
这是匿名函数的写法,这种形式也可以写成:
function anonymousFunc($){
....
....
}
annonymousFunc(jQuery);
只不过为了方便,我们使用匿名函数的方式,当调用时我们把全局变量jQuery传入,完成对应的操作。