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