解决方案 »

  1.   

    重新定义了factorial 函数的话,不是会把原来的函数覆盖,原来的不就失效了?
    =>重新定义之前,已经保存了对原函数的引用,重新定义不会覆盖该引用。
    例如:
    a = [1,2], b=a, a=[3,4];
    console.info(a)
    console.info(b)
      

  2.   

    factorial -> A地址 就是那个有效的函数
    var trueFactorial = factorial;
    trueFactorial  -> A地址factorial = new  function()factorial  - >B 地址   差不多就是这个意思。
     我想楼主应该看一下 第四章基本类型和引用类型的值
    我也没有特别深入的研究问题,我一直都是这么理解的,要不就存实体也就是值,要不就存地址。反正要存这两个东西的一个
    然后在分析效果。
      

  3.   

    重新定义了factorial 函数 原来的函数定义没有被覆盖,还是一直存在的,只是factorial指到另一个函数的引用去了。