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); 
}

前端小白,如有不對,請斧正。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM