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

一道关于 JavaScript 中 this 的题目的困惑

一道关于 JavaScript 中 this 的题目的困惑

侃侃无极 2018-11-21 18:19:23
看到很多资料说,哪个对象调用了这个函数,这个函数中的 this 就指向这个对象。下面这个例子中,foo这个函数,是通过 foo()这个语句调用的,为什么this 指向全局?并没有 Window.foo( )这样由全局对象调用呀?求教,多谢!var x = 10;var obj = {  x: 20,  f: function () {     var foo = function (){         console.log(this.x);     }     foo();  }};obj.f(); //10
查看完整描述

1 回答

?
暮色呼如

TA贡献1853条经验 获得超9个赞

foo不是全局变量,简单点来判断(非严格模式)就是:
1.当一个函数没有被指定上级对象的时候,this指向window
2.当一个函数有被指定上级对象的时候,this仅指向最靠近的上级(父)对象
如 foo.fn.o() , o里面的this指向fn

查看完整回答
反对 回复 2018-12-25
  • 1 回答
  • 0 关注
  • 414 浏览
慕课专栏
更多

添加回答

举报

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