Js函数arguments及高阶函数应用
函数的成员——arguments
- arguments: 函数在调用时,传入的所有的实参集合(类数组对象)
- arguments.callee :arguments的一个属性,指向的是函数本身
- 函数名.caller: 函数的调用者,如果在全局调用,返回的调用者为 null。
- 函数名.length :形参的个数
- 函数名.name: 函数的名称
//arguments 记录的是所有实参
//使用 arguments 模仿制作一个求最大数的方法
function max(){
var maxNum = arguments[0];
for(var i = 0;i < arguments.length; i++){
if(maxNum < arguments[i]){
maxNum = arguments[i];
}
}
return maxNum;
}
高阶函数
-
如果一个函数可以作为另外一个函数的参数,那么它就是高阶函数
function fn(fn2){ console.log("先执行fn函数"); fn2(); } fn(function (){ console.log("fn2 是高阶函数,执行fn函数中的fn2()时,跳转这里执行") })
-
如果一个函数可以作为另外一个函数的返回值,那么它就是高阶函数
//函数可以作为另外一个函数的返回值 function outer(n){ // 想要在外部执行inner函数 ---return return function inner(m){ console.log(n + m); } } // 在外部执行inner函数 //outer(10);//这样调用outer给n赋值10,m就固定了,不会改变了 var fun = outer(100);//将outer的执行 = 变量 // fun存的就相当于是一个返回值--一个函数 fun(22);//122 //实现了定义在函数内部的函数,可以在外面调用