obj.foo不能访问xl内部的局部变量a, 但是把var ok = obj.foo,我的理解是把obj.foo的函数体定义给了ok,按理来说,这个时候OK函数,和我二张的图片里,直接定义OK函数,理论上是一样的把,为啥结果不同这种方式不能访问a 而下面的又可行
1 回答
手掌心
TA贡献1942条经验 获得超3个赞
x1方法中定义的a是局部变量,在x1函数内部可以访问,外部是访问不到的,在调用ok()方法,该方法中没有定义a变量,然后到全局环境中查找,很显然也找不到。
你可以把var a = '11',修改为a = '11',去掉var。a就变为全局变量,foo方法中就可以访问到了。
下面的为什么可行?
执行ok()方法的时候,首先找自己执行环境中的a,没有找到,因为你的ok函数式定义在x1()中的,所以会再去x1()函数的执行环境中查找,在x1()的执行环境中,找到了a。
添加回答
举报
0/150
提交
取消