请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于箭头函数this指向的问题

{
  const lives = 2;

  const cat = {
    lives: 1,
    jumps: () => {
      return this;
    }
  }

  console.log(cat.jumps());
}
为什么在浏览器环境中运行这段代码,this一直指向的是Window。一直理解不了这件事情!

正在回答 回答被采纳积分+3

1回答

陶子阳 2019-11-08 18:55:20

会不会是因为箭头函数,箭头函数的取值是他上级作用域,在执行的时候cat的上级作用域就是window?

0 回复 有任何疑惑可以回复我~
  • 双越 #1
    对呀,就是这个原因啊。
    回复 有任何疑惑可以回复我~ 2019-11-08 20:42:24
  • 陶子阳 回复 双越 #2
    刚看完一遍,迷迷糊糊的不敢确认??谢谢老师解惑
    回复 有任何疑惑可以回复我~ 2019-11-08 20:49:53
  • 提问者 慕前端03542954 #3
    他的上级作用域不应该是外面那个大括号里面吗?怎么一直取不到lives的值,然后我在外面又包裹了一层function(){}也还是一样的结果?
    回复 有任何疑惑可以回复我~ 2019-11-09 08:07:58
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信