js基础 匿名函数

一、arguments对象
arguments.calle,只能在函数内部使用,用于访问当前函数的函数名称。

function fib(n){
//跳出条件:当n=1,或者n=2,返回1.
  if(n==1 || n==2){
    return 1;
  };
//arguments.calle()在函数内部访问当前函数
  return arguments.callee(n-1)+arguments.calle(n-2);     // 等同于return fib(n-1)+fib(n-2);
};
var res = fib(12);
console.log(res);

二、匿名函数
(1)使用匿名函数创建函数
声明:

var 函数名称 = function(){   };
//声明的变量名称就是函数名称

调用:

函数名称();

三、对比匿名函数和普通函数的区别
普通函数存在函数提升,匿名函数不存在提升,所有在使用匿名函数的时候,需要先声明后调用。

//匿名函数
//把匿名函数放入到变量中,相当于给匿名函数加了一个名称
//fn现在就是一个函数
var fn = function(){
  console.log(123);
};
//调用函数fn
fn();

//报错,匿名函数不存在提升。
fn();
var fn = function(){
  console.log(123);
};

四、回调函数
把匿名函数以实参的形式传递给形参。

//匿名函数用作回调函数
//要求:传递两个函数的名称
function getSum(num1,num2){
  return num1()+num2(); 
};
//调用getSum,将getNum1和getNum2两个函数当做实参传入。
var res = getSum(getNum1,getNum2);
console.log(res);    //3
//调用getSum,将整个函数传入作为实参,替换形参。
var res2 = getSum(function(){return 3;},function (){return 4;});
console.log(res2);    //7
//定义两个函数
function getNum1(){
  return 1;
};
function getNum2(){
  return 2;
};

五、匿名函数的调用

(function (形参列表){
  //函数体
})(实参列表);
//使用匿名函数的自调用可以创建一个局部作用域。(局部变量不会被污染)
//匿名函数的调用
//无参数
(function(){
  console.log(3);
})();

//有参数
(function(n){
  console.log(n);
})(3);
上一篇: js基础 递归
下一篇: js基础 全局函数
作者邮箱: 203328517@qq.com