JavaScript函数之高阶函数

时间:2024-02-29 21:23:15 类型:JS/JQUERY
字号:    

高阶函数(higher-order function)—如果一个函数接收的参数为或返回的值为函数,那么我们可以将这个函数称为高阶函数。众所周知,JavaScript是一种弱类型的语言:JavaScript的函数既不对输入的参数,也不对输出值作强定义和类型检查,那么函数可以成为参数,也可以成为输出值,这就体现了JavaScript对高阶函数的原生支持。

、参数为函数的高阶函数:

function funcTest(f){
    //简易判断一下实参是否为函数
    if((typeof f)=="function"){
        f();
    }
}
funcTest(function(){ });

 这是一个简易的将参数作为函数的高阶函数。在调用funcTest时,输入一个函数作为参数,在funcTest内部执行这个输入的匿名函数,当然这样的代码片段没有什么实际意义。

、返回值为函数的高阶函数:

function funcTest(){
   return function(){
   };
}
var f=funcTest();

调用funcTest返回一个函数。

三、一个复杂一点的例子:

//Number类型相加
   function addInt(a,b){
       return parseInt(a)+parseInt(b);
   }
   //String类型相加
   function addString(a,b){
       return a.toString()+ b.toString();
   }
   function add(type){
       if(type==="string"){
           return addString;
       }else{
           return addInt;
       }
   }
   var data1=add("string")("1","2");     //12
   var data2=add("int")("1","2");        //3





<