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

一个this的问题

一个this的问题

慕田峪9158850 2018-09-11 09:14:30
看了tom大叔的深入浅出JavaScript,其中有一段关于this的有点搞不懂,他这样说:“当调用表达式限定了call括号左边的引用类型的值, 尽管this被设定为null,但结果被隐式转化成global。当引用类型值的base对象是被活动对象时,这种情况就会出现。” 然后给了下面这段例子: function foo() {      console.log(this);//goo       function bar() {        console.log(this); // global       }       bar(); // the same as AO.bar()     }    var goo = {        go:foo     }     goo.go();根据我看了的理解在进入函数上下文时,这对象里面会有三个属性:1、变量对象(vo) 2、作用域链 3、this值,现在要说的就是this的值,里面说函数的this值是有调用者call给的,所以第一个log出goo没错,但在foo里面调用bar函数时为什么会是global,按照理解在执行bar()时会进入bar的上下文,而他的this值应该是调用者给的,而调用者foo的this值是goo,那为什么第二个log出来global。。。谁能解释一下这其中运作的过程!
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 470 浏览
慕课专栏
更多

添加回答

举报

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