美文网首页
ES6之箭头函数

ES6之箭头函数

作者: GrowthCoder | 来源:发表于2017-07-19 09:27 被阅读0次

感觉自己对ES6的一些知识点,理解的还不是很透彻,就决定好好学习下一些相关知识,并分享出来,有不足之处,还望指出。敲黑板、划重点啦,这次分享的主角是箭头函数,作为一个新事物,也是有其两面性的。

箭头函数是什么?

使用箭头(=>)定义函数,因其使用起来便捷、代码整洁,备受coders喜爱。

var foo = v => v

#上面的箭头函数相当于
var foo = function(v) {
    return v;
}

为什么要用箭头函数?

箭头函数的引入有两个方面的作用:

  • 更简短的函数书写
  • 对 this的词法解析

箭头函数注意事项

  • 箭头函数没有this,或者说箭头函数不会改变this本来的绑定,由上下文确定,继承自外围作用域

在原型上使用箭头函数:


function A () {
    this.foo = 1;
}
A.prototype.bar = () => console.log(this.foo);

let a = new A();
a.bar(); //undefined

一个经常犯的错误是使用箭头函数定义对象的方法


let a = {
  foo: 1,
  bar: () => console.log(this.foo)
}

a.bar();  // undefined

箭头函数中的this并不是指向a这个对象,对象a并不能构成一个作用域,所以再往上到达全局作用域,this就指向全局作用域。

  • 箭头函数没有arguments,如果你能获取到arguments,那它一定是来自父作用域的。
function foo() {
  return () => console.log(arguments[0])
}
foo(1, 2)(3, 4)  // 1

适用于什么场景?

  • 适用于无复杂逻辑或者无副作用的纯函数场景下,例如在map、filter的回调函数定义中
  • 不要在最外层定义箭头函数,因为在函数内部操作this会很容易污染全局作用域。

相关文章

  • ES6箭头函数简介

    @(JS技巧)[ES6|箭头函数] ES6箭头函数(Arrow Functions) ES6可以使用“箭头”(=>...

  • es6全家桶(二)—— 箭头函数

    es6全家桶(二)—— rest参数、箭头函数 箭头函数 ES6 允许使用“箭头”(=>)定义函数。 var f ...

  • es6、js、css、jquery、vue以及程序设计 知识点总

    es6 列举常用的es6特性。 箭头函数this的指向。 eg:箭头函数的特性 箭头函数内部没有construc...

  • 29.JavaScript-箭头函数

    1.什么是箭头函数? 箭头函数是ES6中新增的一种定义函数的格式目的:就是为了简化定义函数的代码 2. 在ES6之...

  • 箭头函数

    ES6允许使用“箭头”(==>)定义函数。 箭头函数 等同于

  • 学习 ES 6 箭头函数

    箭头函数的用法 ES6 允许使用“箭头”(=>)定义函数。 箭头函数的一个用处是简化回调函数。 箭头函数 this...

  • JavaScript箭头函数

    ES6新语法箭头函数 箭头函数是ES6新语法,因为语法简单、可读性好,所以使用的也很多。箭头函数也是匿名函数,区别...

  • 关于ES6箭头this的指向问题

    ES6 允许使用 “ 箭头 ” (=>)定义函数。 箭头函数 填 坑。 this的指向是 向上查找 非箭头函数的...

  • ES6箭头函数(Arrow Functions)

    箭头函数是什么?(What) 箭头函数 (Arrow Functions)也称“胖箭头函数”,是ES6全新的特性。...

  • ES6之箭头函数【整理】

    [面试专题]ES6之箭头函数详解 https://segmentfault.com/a/1190000010914...

网友评论

      本文标题:ES6之箭头函数

      本文链接:https://www.haomeiwen.com/subject/rfdstxtx.html