猿问

return b与return b() 的区别

function A(){
    function B(){
       console.log('Hello Closure!');
    }
    return B;
}
var C = A();
C();// Hello Closure!

为什么直接调用A();就没有输出呢?非要把A()调用再赋值给C, C再调用就能输出内容呢?

宋九十
浏览 874回答 1
1回答

pardon110

A函数是个高阶函数,即返回值是一个函数,所以如果想得到打印结果,可以这样A()()从左至右,第一个()执行后得到内部函数B,第二个()调用后得到B函数调用执行的结果。如果用过python装饰器,或理解其它语言闭包概念,不难了解
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答