js 函数作为参数+接受任意数量参数

/*
 * 求给定参数数组元素中的最大值
 *
 * 参数num_arr  array类型
 * return max 数值型
 */
function max_num(num_arr)
{
    //保存结果,初始化为数组的第一个元素
    var  max=num_arr[0];
    var i=0; //循环变量初始化
   //遍历数组,找出最大值放在max中
    for(i;i<num_arr.length;i++)
    {
        if(max<num_arr[i])
        max=num_arr[i];
    }
    return max;
}

/*
 * 将函数作为函数参数
 *
 * 参数 function_name  函数的名字
 *
 * return 调用参数中的函数
 */
function result(function_name)
{
    var number_arr=new Array();
    //将参数中除去第一个参数的其余参数赋值给数组number_arr
    var i =1;
    for(i;i<arguments.length;i++)
    {
        number_arr[i-1] = arguments[i];
    }
    return function_name(number_arr);
}

var a=result(max_num,3,4,5,6);

  

       javascript中的函数是“复合数据类型”,又成为“引用类型”。引用类型的变量指向存储单元中存放的是它们的实际存放地址。函数名是对函数的一种引用.var a=max_num ;a()就可以调用function max_num

       另外js函数的一个特点是,无论在函数定义时定义了多少个参数,函数在调用时都可以接受任意个数的参数(最大25个)。就像function result()只定义了一个参数function_name,但是调用的时候可以带多个参数result(max_num,3,4,5,6);

原文地址:https://www.cnblogs.com/senyier/p/3620917.html