教程集 www.jiaochengji.com
教程集 >  脚本编程  >  javascript  >  正文 解析JavaScript中的匿名函数

解析JavaScript中的匿名函数

发布时间:2015-02-01   编辑:jiaochengji.com
本文介绍下,javascript中匿名函数的相关函数,有理论,有实例,需要的朋友参考下吧。

所谓匿名函数,即没有名字的函数,有时也称为拉姆达函数。
匿名函数功能强大,用途众多。
一个典型的函数声明:
 

复制代码 代码示例:
function functionName(arg0, arg1, arg2) {
    //函数体
}
 

也可以像下面这样以函数表达式的形式定义函数:
 

复制代码 代码示例:
var functionName = function (arg0, arg1, arg2) {
    //函数体
};
 

虽然这两个例子在逻辑上等价,但它们之间还是存在一些区别。
当然,函数声明与函数表达式之间的主要区别,就死前者会在代码执行以前被加载到作用域中,而后者则是在代码执行到哪一行的时候才会有定义。另一个重要的区别是函数声明会给函数指
定一个名字,而函数表达式创建一个匿名函数,然后将这个匿名函数赋给一个变量。

以上第二个例子创建了一个带有三个参数的匿名函数,然后把这个匿名函数付给了变量functionName;
但是,并没有给匿名函数指定名字。
也可以这样实现一个匿名函数:
 

复制代码 代码示例:
function (arg0, arg1, arg2) {
    //函数体
}
 

在将函数作为参数传入另一个函数,或者从一个函数中返回另一个函数时,通常都要使用以这种形式来定义匿名函数。下面是createComparisonFunction()函数的例子:
 

复制代码 代码示例:
function createComparisonFunction(propertyName) {
    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解析

[关闭]
~ ~