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

JS中,函数A return 出函数B,请问函数A和B的作用域是什么关系?是上下级关系还是平行关系?

JS中,函数A return 出函数B,请问函数A和B的作用域是什么关系?是上下级关系还是平行关系?

犯罪嫌疑人X 2019-05-24 11:55:53
JS中,函数A,return出函数B,请问函数A和B的作用域是什么关系?是上下级关系还是平行关系?比如在学习闭包的时候,常常会遇到这样的例子:functiona(){varx=10;returnfunctionb(){x++;alert("x为:"+x);}}显然在这种情况下,b()是a()的下级作用域,才能访问a()中的变量x。而我目前理解的是:函数Areturn出的函数B,它们的作用域是平行关系。a()像我们的肚子,如果b()在肚子里面,那么b()确实是a()的下级作用域。但是现在b()被a()return出来了,就像从肚子里面排遗出来一样,那么b()就从a()中脱离出来了,所以我目前认为它们是平行关系。因为还有个例子是这样的:varname="大王";varobj={name="小王";getName:function(){returnfunction(){returnthis.name;}}};varele=obj.getName();//function(){returnthis.name;};alert(ele());//大王//或者用alert(obj.getName()());//大王这个例子里面obj.getName()-->return出来的函数就是全局函数。你看这里,对象的方法也是函数对不对?但这个例子就说明它return出来的函数不在这个方法的作用域里面,而是和对象平行的作用域。所以很疑惑,请各位大神讲解讲解!
查看完整描述

2 回答

  • 2 回答
  • 0 关注
  • 587 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号