箭头函数和this

Posted do-something

tags:

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

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Functions/Arrow_functions

1.

()=>{c}        无参数return c

a=>{c}         一个参数a return c

(a,b)=>{c}   两个参数a和b return c

aa=>{{cc}}   一个参数aa return 对象cc

引入箭头函数有两个方面的作用:更简短的函数并且不绑定this

eg:

var elements = [
  ‘Hydrogen‘,
  ‘Helium‘,
  ‘Lithium‘,
  ‘Beryllium‘
];

不用箭头函数:
elements.map(function(element) { return element.length; });
用箭头函数:
elements.map(element => element.length);

箭头函数不会创建自己的this,它只会从自己的作用域链的上一层继承this

2.

 

在箭头函数出现之前,每一个新函数根据它是被如何调用的来定义这个函数的this值

 

  • 如果是该函数是一个构造函数,this指针指向一个新的对象
  • 在严格模式下的函数调用下,this指向undefined
  • 如果是该函数是一个对象的方法,则它的this指针指向这个对象等等

鉴于 this 是词法层面上的,严格模式中与 this 相关的规则都将被忽略。

var f = () => { ‘use strict‘; return this; };
f() === window; // 或者 global

 

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

this的用法-箭头函数+面试题

关于箭头函数里的this

箭头函数的this指向问题

箭头函数和 this指向

bind() 和 箭头函数的this

箭头函数this指向问题