es6 的箭头函数
- 是一种对 **函数表达式** 的简写(也就是我们所说的赋值式函数)
- 对 **声明式函数** 没有作用
-
函数表达式
- 自执行函数里面 (function () {})()
- 赋值式函数 let fn = function () {}
- 对象中的方法 obj = { fun: function () {} }
- 定时器处理函数 setTimeout(function () {})
- es5 的哪些数组方法 forEach(function () {})
- 事件处理函数 addEventListener(‘click’, function () {}) -
我们的函数表达式一般都是 匿名函数
+ 匿名函数都可以使用箭头函数来简写 -
箭头函数的语法
+ 没有了 function 关键字
+ () => {} -
箭头函数的特性
- 箭头函数没有 this
- 箭头函数的 this 就是上下文(context)
- 就是箭头函数外部作用域的 this
- 只有箭头函数特殊,this 看定义
- 你箭头函数写在哪一行,你就去你写箭头函数的上一行打印一下 this
- 上一行 this 是谁,箭头函数里面的 this 就是谁
- 箭头函数不受 call / apply / bind 的影响
- 箭头函数的 this 在定义的时候就已经决定好了
- 决定好以后,任何方法不能更改
- 箭头函数内部没有 arguments
- 箭头函数内部没有这个天生的变量
- 箭头函数传递参数的时候
- 如果只有一个形参,可以不写小括号
- 如果没有形参或者两个及以上形参,必须写小括号
- 箭头函数的函数体
- 如果只有一句话,可以不写大括号
- 否则就必须写
- 当你省略 {} 的时候,函数会自动 return
- 箭头函数没有 this