zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Python实现DES加密算法
    空循环,g++ O2优化
    java 高并发下超购问题解决
    原型模式
    Lambda速学
    观察者模式
    略读策略模式
    .net 字典的速学
    执行计划准备篇
    关于“策略模式”与“桥接模式”的问题
  • 原文地址:https://www.cnblogs.com/chenxiaomei0104/p/10538701.html
Copyright © 2011-2022 走看看