为了账号安全,请及时绑定邮箱和手机立即绑定

return b与return b() 的区别

return b与return b() 的区别

宋九十 2019-04-03 23:22:56
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装饰器,或理解其它语言闭包概念,不难了解

查看完整回答
1 反对 回复 2019-04-04
  • 1 回答
  • 0 关注
  • 867 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信