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); }
前端小白,如有不对,请斧正。