闭包,函数中嵌套函数为什么要return回去呢,看不懂,详细解析下

yuji821 2016-02-22 09:59:14
function a(){
var aa = 0;
function b(){
aa ++;
console.log(aa);
}
return b; //这里 return b是什么意思,为什么要这样写呢,写成 b()为什么不行呢
}
var ab = a();
ab(); //1
ab(); //2
...全文
505 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
闭包的作用就是在函数外部能获取函数内部的布局变量,return b是返回一个函数,外部通过调用的这个返回函数就能获取到局部变量的值。
xuzuning 2016-02-23
  • 打赏
  • 举报
回复
你 console.log(ab); 就知道是怎么回事了! ab 原来是个函数定义
KK3K2005 2016-02-23
  • 打赏
  • 举报
回复
var ab = a(); 执行后 ab 是什么呢
杨小事er 2016-02-22
  • 打赏
  • 举报
回复
b 是对函数的指向。 而b() 则是对函数的执行。 可以理解成,()这对括号就是函数的执行符。 函数执行了 就会执行函数内部的语句,然后再返回b这个函数内部的return值,返回的不再是b这个函数了
slwsss 2016-02-22
  • 打赏
  • 举报
回复
返回函数才能继续调用 换个写法自己调试下
yuji821 2016-02-22
  • 打赏
  • 举报
回复
引用 1 楼 slwsss 的回复:
b() 返回的不是函数
return b; 返回函数有什么用呢,具体是什么意思,返回去又是做什么呢
slwsss 2016-02-22
  • 打赏
  • 举报
回复
b() 返回的不是函数

87,997

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧