关于前端:JS中-this关键字出现的场景都有哪些

40次阅读

共计 489 个字符,预计需要花费 2 分钟才能阅读完成。


总结点:

1. 所有的 this 关键字,在函数运行时,能力确定它的指向
2. this 所在的函数由哪个对象调用,this 就会指向谁
3. 当函数执行时,没有明确的调用对象时,则 this 指向 window


呈现场景总结:

  • 浏览器环境中,全局 this 指向 window
  • 一般函数中,this 指向 window
  • 定时器函数中,this 指向 window
  • 对象办法中,this 指向实例对象
  • 构造函数中,this 指向实例对象
  • 事件处理函数中,this 指向事件源
  • 箭头函数中,没有 this;如果应用 this,则把 this 当做一般变量看待,而后按作用域去查找即可

如何判断箭头函数的 this?

因为箭头函数不具备本人的 this,所以非常简单,伪装它不存在,就像这样:

var obj = {show: function(){setTimeout(()=> {console.log(this);
      },0),
}
}

这下 this 的指向十分清晰了吧

  1. 箭头函数能够用 call 来扭转 this 指向吗?

不能!!试图扭转箭头函数的 this 是徒劳的。

var fn = () => {console.log(this);
}
fn.call(document); // 仍然打印 window

正文完
 0