猿问

js菜鸟的提问

请问这个函数的流程是?怎么求出的结果

function Foo()

{    

    var i = 0;
    return function()

    { 

    console.log(i++);    

    }

}  
var f1 = Foo(), f2 = Foo();

f1();

f1();

f2();

onaug6th
浏览 1543回答 3
3回答

GdinKing

 return function() {   console.log(i++);    } 表示返回的是一个函数,f1()就是调用这个函数,一开始i=0,打印出来是0,第二次执行f1()后是针对同一个对象i操作的,i加了1,所以打印1,第三个执行f2(),此时不再是对之前的对象i操作,而是新的对象,所以i还是0

蜂之谷

自己试试不就知道了  0  1  0
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答