function A(){
function B(){
console.log('Hello Closure!');
}
return B;
}
var C = A();
C();// Hello Closure!为什么直接调用A();就没有输出呢?非要把A()调用再赋值给C, C再调用就能输出内容呢?
1 回答
已采纳
pardon110
TA贡献1038条经验 获得超227个赞
A函数是个高阶函数,即返回值是一个函数,所以如果想得到打印结果,可以这样
A()()
从左至右,第一个()执行后得到内部函数B,第二个()调用后得到B函数调用执行的结果。
如果用过python装饰器,或理解其它语言闭包概念,不难了解
添加回答
举报
0/150
提交
取消