工欲善其事必先利其器
在學習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); }
前端小白,如有不對,請斧正。