我记得好像在c中用static **这样的语句可以定义一个在这个递归函数中连续可用的静态变量。可以在js中做到吗?

解决方案 »

  1.   

    在函数体外定义一个变量
    var a=...;
    function xxx(){
    ...
    }
    楼主是这意思么
      

  2.   

    是啊,我是说不用这样子可以吗?就像C里面:
    int add()
    {//第一层
      static int a,,,,,
    .....
    add()//第二层
    }
    好像这样那个a的内容进入第二层时仍然保持和第一层一样。
      

  3.   

    知道JS怎么定义变量的吗?用var  。
    var就是英文“变体”的缩写,所以定义变量时不会有C里面的那些int之类的明确类型定义,而通通都是var.
    所以很遗憾,static静态定义也不可能了。不过
    function add()
    {//第一层
      a=0;//这样就直接定义了一个数字类型的全局变量(或者在函数外用 var a=0定义)。
          //权且弥补一下无法使用static的遗憾
    .....
    add()//第二层
    }