JS中函数里的this指向

缘起

在JS中,函数是非常单纯的,仅仅只是函数而已,一个函数在被调用之前,对于它来说this的指向是不知道的。
默认情况下,谁调用函数,this就指向谁。

解释

也就是说,当传递函数交给别人执行的时候,对于函数来说this指向新的调用者了。

解决

如何保证this的指向不变呢?
答案就是函数的原型链上有一个bind()函数,这个函数会返回一个设置了this指向的函数,并且绑定后是永久的不允许修改了的,就是不会变了,bind()函数的第一个参数就是this需要指向的对象。

后语:语法糖()=>{}箭头函数

箭头函数是直接被绑定在当前this对象上的,相当于在定义完成之后直接绑定了this

let fun=()=>{
  // your code
}
// 大约等价于
let fun=function(){
  // your code
}.bind(this)

也就是说,箭头函数声明的时候,this指向是定的,以后也不会变了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容