javaScript高级程序设计--第7章函数表达式

1.定义函数的方式有两种:

a.函数声明:

  getName();

  function getName(){ alert("123")};

函数声明的特征:函数声明的提升,所以上面的例子才可以在函数声明前调用函数而不报错

b.函数表达式(又叫匿名函数,注意不能在表达式完成前调用,会报错)

    var getName = function(){alert("123")};

  getName();

2.递归

  arguments.callee  指向一个正在执行的函数的指针,所以实现递归时最好使用这种方法(此方法在严格模式下会报错),而不是调用自身函数名

3.闭包

  经典案例:

 //改版前

function getNum(){

  var result = new Array();

  for(var i=0;i<10;i++){

    result[i] = function(){

      return i;

    }

  }

  return result;

}

  getNum() //10次都返回10;

 //改版后

function getNum(){    

  var result = new Array();

  for(var i=0;i<10;i++){

    result[i] = function(num){

      return function(){ return num;} //

    }(i) //自执行函数,i一直会变通过num再传进去

  }

  return result;

}

  getNum() //1,2,3,4,5,6,7,8,9,10

猜你喜欢

转载自www.cnblogs.com/chenxiaomei0104/p/10538701.html
今日推荐