码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2019-03-15 18:55:04      阅读:205      评论:0      收藏:0      [点我收藏+]

标签:margin   func   表达   不能   i++   UNC   nbsp   javascrip   自身   

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

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

标签:margin   func   表达   不能   i++   UNC   nbsp   javascrip   自身   

原文地址:https://www.cnblogs.com/chenxiaomei0104/p/10538701.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!