ES6箭头函数this指向

Posted 兔子先生

tags:

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

普通函数中的this:

1. this总是代表它的直接调用者(js的this是执行上下文), 例如 obj.func ,那么func中的this就是obj

2.在默认情况(非严格模式下,未使用 ‘use strict‘),没找到直接调用者,则this指的是 window (约定俗成)

3.在严格模式下,没有直接调用者的函数中的this是 undefined

4.使用call,apply,bind(ES5新增)绑定的,this指的是 绑定的对象

 

箭头函数中的this

箭头函数没有自己的this, 它的this是继承而来; 默认指向在定义它时所处的对象(宿主对象),而不是执行时的对象, 定义它的时候,可能环境是window; 箭头函数可以方便地让我们在 setTimeout ,setInterval中方便的使用this

<script>
 var obj = {
   say: function () {
     setTimeout(() => {
       console.log(this)
     });
   }
 }
 obj.say(); // obj
</script>

此时的 this继承自obj, 指的是定义它的对象obj,(它所处的宿主对象obj) 而不是 window!

教程参考:https://blog.csdn.net/yangbingbinga/article/details/61424363

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

ES6箭头函数中的this指向

ES6箭头函数中的this绑定问题

ES6箭头函数中的this绑定问题

es6箭头函数 this 指向问题

ES6 从入门到精通 # 06:箭头函数 this 指向和注意事项

ES6 从入门到精通 # 06:箭头函数 this 指向和注意事项