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

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

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

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

2 回答

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

添加回答

举报

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