首页 > Web开发 > 详细

你不知道的JS系列 ( 26 ) - this 和箭头函数

时间:2020-03-11 10:09:39      阅读:59      评论:0      收藏:0      [点我收藏+]
this 的四条绑定规则包含所有正常的函数。ES6 中箭头函数是一种无法使用这四条规则的特殊函数类型,他是根据外层作用域来决定 this 。箭头函数不是使用 function 关键字定义,而是使用 =>

 

我们看看箭头函数的词法作用域
function foo(){
  return (a) => {
    console.log(this.a) // 箭头函数下的 this
  }
}
var obj1 = {
  a: 2
}
var obj2 = {
  a: 3
}
var bar = foo.call(obj1);
bar.call(obj2); // 2

foo 的 this 绑定到 obj1,bar 的 this 也会绑定到 obj1,箭头函数的绑定无法被修改。

 

箭头函数最常用于回调函数中,例如事件处理器或者定时器
function foo(){
  setTimeout(()=>{
    // 这里的 this 在词法上继承自 foo()
    console.log(this.a)
  })
}
var obj = {
  a: 2
}
foo.call(obj); //2

 

 

你不知道的JS系列 ( 26 ) - this 和箭头函数

原文:https://www.cnblogs.com/wzndkj/p/12460159.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!