不少编程人员分不清匿名函数和闭包总是把他们俩搞混 在这之前我也是对这云里雾里的
匿名函数:简单的来说就是没有名字的函数
匿名函数有两种方式定义
第一种方式:
var double = function(x) { return 2* x; }
第二种方式:
(function(x, y){
alert(x + y); })(2, 3);
闭包的含义:闭包说白了就是函数的嵌套,内层的函数可以使用外层函数的所有变量,即使外层函数已经执行完毕(这点涉及JavaScript作用域链)。
示例一
由于闭包会携带包含它的函数的作用域,因此会比其他函数占用更多的内存。过度使用闭包可能会导致内存占用过多。function checkClosure(){ var str = 'rain-man'; setTimeout( function(){ alert(str); } //这是一个匿名函数 , 2000); } checkClosure();