面试题 闭包 立即执行函数


  1. 用到了闭包,里面的函数用到外外面函数的变量i
  2. 其次,这个test的值,并不是外面的那个函数,因为外面包裹的这个函数是立即执行函数,所以test实际指向里面的那个function.
  3. 在调用test(5)的时候,虽然传入了参数5,但是因为这个函数并没有用到这个传入的参数5,里面的i用的是闭包中的i,也就是立即执行函数传入的2.
  4. 所以输出的结果是,2*2 =4,又因为是alert输出,所以是字符串4