函数也是数据及匿名函数

159 阅读1分钟

一、函数也是数据:

在 javascript 中,函数实际上也是一种数据。也就是说,我们可以把一个函数赋值给一个变量!

var f = function (){
    return 1;
};

上面这种定义的方式,通常被叫做 函数标识记法 。它有两个重要的特性:

  • 它们所包含的是代码。
  • 它们是可执行的(或者说是可调用的)

 因此我们可以像变量那样使用函数--也就是说,我们可以将它拷贝给不同的变量。

var sum = function(a,b){
    return a + b;
};
var add = sum;

//调用一下
typeof add    //"function"
add(1,2);     //3

二、匿名函数:

正如上面第一个例子所知:

var f = function (){
    return 1;
};

通过这种方式定义的函数常被称为 匿名函数 (即没有名字的函数),特别是当它不被赋值给变量单独使用的时候。

在这种情况下,此类函数有两种优雅的用法:

  • 你可以将匿名函数作为参数传递给其他函数,这样,接收方函数就能利用我们所传递的这个匿名函数来完成某些事情;
  • 你可以定义某个匿名函数来执行某些一次性任务。

//来看个例子
var addNumber = function(num){
    num += 1;
    return num;
}

function f(num,callback){
    return callback(num);
}

//调用一下
f(1,addNumber);    //2
f(10,addNumber);    //11

是不是很眼熟?其实匿名函数最常用的一种方式就是在回调函数中的应用,下篇我们将根据几个回调函数的例子,来进一步了解匿名函数。

本文摘自《JavaScript面向对象编程指南》,分享的目的仅供个人学习和理解,如需转载请备注本文出处,谢谢!