箭头函数this指向

Posted codejoker

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了箭头函数this指向相关的知识,希望对你有一定的参考价值。

1. cat.jumps

1 var cat = {
2       lives: 9,
3       jumps: function() {
4         this.lives--
5       }
6     }
7     cat.jumps()
8     cat.jumps()
9     console.log(cat.lives)

打印结果为: 7

使用箭头函数

1 var cat = {
2       lives: 9,
3       jumps: () => this.lives--
4     }
5     cat.jumps()
6     cat.jumps()
7     console.log(cat.lives)

打印结果为9

2. call apply bind扔不能改变this指向

1  window.color = ‘red‘
2     let color = ‘green‘
3     let obj = {
4       color: ‘blue‘
5     }
6     let sayColor = function() {
7       return this.color
8     }
9     console.log(sayColor.call(obj))

打印结果为blue;

使用箭头函数:

1 window.color = ‘red‘
2     let color = ‘green‘
3     let obj = {
4       color: ‘blue‘
5     }
6     let sayColor = () => this.color
7 
8     console.log(sayColor.call(obj))

打印结果为: red;

由于箭头函数没有自己的this,所以当然也就不能用call()apply()bind()这些方法去改变this的指向。

 

以上是关于箭头函数this指向的主要内容,如果未能解决你的问题,请参考以下文章

箭头函数与this指向问题

箭头函数this指向问题

箭头函数this的指向

前端片段整理

箭头函数的作用域

箭头函数和 this指向