解析JavaScript中的匿名函数
所谓匿名函数,即没有名字的函数,有时也称为拉姆达函数。
匿名函数功能强大,用途众多。
一个典型的函数声明:
//函数体
}
也可以像下面这样以函数表达式的形式定义函数:
//函数体
};
虽然这两个例子在逻辑上等价,但它们之间还是存在一些区别。
当然,函数声明与函数表达式之间的主要区别,就死前者会在代码执行以前被加载到作用域中,而后者则是在代码执行到哪一行的时候才会有定义。另一个重要的区别是函数声明会给函数指
定一个名字,而函数表达式创建一个匿名函数,然后将这个匿名函数赋给一个变量。
以上第二个例子创建了一个带有三个参数的匿名函数,然后把这个匿名函数付给了变量functionName;
但是,并没有给匿名函数指定名字。
也可以这样实现一个匿名函数:
//函数体
}
在将函数作为参数传入另一个函数,或者从一个函数中返回另一个函数时,通常都要使用以这种形式来定义匿名函数。下面是createComparisonFunction()函数的例子:
retun
function (object1, object2) {
var value1 = object1[propertyName];
var value2 = object2[propertyName];
if (value1 < value2) {
return -1;
} else if (value1 > value2) {
return 1;
} else {
return 0;
}
};
}
createComparisonFunction()就返回了一个匿名函数。
返回的函数可能会被赋值给一个变量,或以其它方式被调用;
不过,在createComparisonFunction()函数内部,它是匿名的。
在把函数当成值来使用的情况下,都可以使用匿名函数。
不过,这并不是匿名函数唯一的用途。
您可能感兴趣的文章:
解析JavaScript中的匿名函数
jQuery中(function(){})()执行顺序的理解
[Introduction]匿名函数
从匿名函数(闭包特性)到 PHP 设计模式之容器模式
jQuery创建插件的代码分析
关于php中匿名函数与回调函数的详解
jQuery源码分析-01总体架构分析
GoLang的匿名函数与闭包
【PHP学习】 匿名函数的六个使用技巧
javascript arguments解析