美文网首页
es6箭头函数

es6箭头函数

作者: yiyun021 | 来源:发表于2017-06-26 12:42 被阅读0次

es6新增了箭头函数, 先来看一个以前的例子

const add = function(a, b) {
  console.log( this )
  return a + b
}

add( 1 , 2 )   

使用了箭头函数

const add = (a, b) => {
  return a + b
}

如果是上面这样还可以简写为

const add = (a, b) => a + b

this指向问题

let obj = {
  test(){
    setTimeout(function(){
      console.log(this)
    })
  }
}

obj.test()  
通常情况下都是输出window

箭头函数(本身没有完整的执行上下文)和外层执行上下文共享this值, 来改进下代码:
let obj = {
  test(){
    setTimeout(() => {
      console.log(this)
    })
  }
}
obj.test()    //  this => obj

箭头函数还有一个问题, 箭头函数不能创建一个闭包。先来看一个例子:

function test(){
  return () => console.log(arguments)
}

test(1,2,3)(4,5)

按照正常的写法:
function test(){
  return function(){
   console.log(arguments)
  }
}

test(1,2,3)(4,5)
这里应该输出的是4,5

如果使用了箭头函数这里却输出了1,2,3

还有一个容易出错的地方, 通常在使用map filter这些高阶函数的时候, 有时候要返回一个对象, 使用了箭头函数之后必须要加()否则就会报一个语法错误

let arr = [1,2,3].map( val =>  { number: val, isOK: true }  ) ❌
let arr = [1,2,3].map( val =>  ({ number: val, isOK: true })  ) ✅

相关文章

  • ES6箭头函数简介

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

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

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

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

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

  • 箭头函数

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

  • 学习 ES 6 箭头函数

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

  • JavaScript箭头函数

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

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

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

  • ES6箭头函数(Arrow Functions)

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

  • 2019-01-11

    ES6 箭头函数 箭头函数表示法:()=>console.log('Hello') 箭头函数和普通函数的区别 和普...

  • js学习笔记4(函数)

    1.箭头函数 ES6新增属性。箭头函数特别适合嵌入函数的场景。 箭头函数虽然语法简介,但是很多场合不适用。箭头函数...

网友评论

      本文标题:es6箭头函数

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