猿问

return的一个小问题

function outerFn(){

         var outerVar = 1;


         function innerFn(){

             console.log(outerVar); 

             var innerFn = 2;

         }

         return innerFn;

     }


outerFn();  //就是这里,为什么不会执行console.log(outerVar)从而输出1呢

而换成这样就行

    function outerFn(){

         var outerVar = 1;


         function innerFn(){

             console.log(outerVar); 

             var innerFn = 2;

         }

         return innerFn;

     }


     var handler= outerFn();

     handler();


慕娘9325324
浏览 398回答 1
1回答

跃然一笑

第一个例子outerFn()里面return了一个函数表达式,并没有调用。第二个例子中其实是先把outerFn()返回的函数赋值给了innerFn,然后innerFn()调用了该函数。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答