JS中的匿名函数、回调函数、匿名回调函数

工欲善其事必先利其器

在学习JavaScript设计模式一书时,遇到了“匿名回调函数”这个概念,有点疑惑,查找了些资料重新看了下函数的相关知识点之后,对这个概念有了认识。九层之台,起于垒土。在熟悉这一系列的概念之前,我们先来认识下JavaScript中函数吧。

一、定义函数的方式有两种:

  • 函数声明
  • 函数表达式

函数声明格式如下  

function functionName(arg0,arg1,arg2,...){
  //函数体
}

function是关键字,然后functionName是函数的名字,这就是指定函数名的方式。这个函数的name属性是functionName。

函数表达式最常见的一种格式如下:

var varfun=function(){
    //函数体
}

创建一个函数并将它赋值给变量varFun,这种情况下创建的函数叫匿名函数(拉姆达函数)。匿名函数的name属性是空字符串。

以下代码测试两种定义方式的name属性值:

function fun(){
}
    console.log(fun.name);//fun

var varfun=function(){
}
    console.log(fun.name);//空的

二、函数调用方式

匿名函数的自调用方式:

//无参
(function(){
})();

//带参
(function(a,b){
alert(a+b);
})(3,5);

函数的回调方式:(通过函数指针调用函数)

//first
function math(num1,num2){
    return minus(num1,num2);
    // return add(num1,num2);
}
function add(num1,num2){
    return num1 + num2;
}
function minus(num1,num2){
    return num1-num2;
}
alert(math(1,2));

匿名回调函数:

函数声明采用表达式形式,通过变量名调用。

var minus=function(num1,num2){
    return num1-num2;
}
function math(num1,num2){
    if(num1>num2)
        return minus(num1,num2);  
    else
        return minus(num2,num1); 
}

前端小白,如有不对,请斧正。

原文地址:https://www.cnblogs.com/planetwithpig/p/11705828.html