通常函数定义

  1. var fn1 = function(a, b) {
  2. return a + b
  3. }
  4. //函数表达式
  5. function fn2(a, b) {
  6. return a + b
  7. }

箭头函数 省去了function 关键字和函数名

  1. var fn1 = (a, b) => {
  2. return a + b
  3. }
  4. (a, b) => {
  5. return a + b
  6. }

单一个参数时,括号可以省略;没有参数是括号不可以省略

  1. // 无参
  2. var fn1 = function() {}
  3. var fn1 = () => {}
  4. // 单个参数
  5. var fn2 = function(a) {}
  6. var fn2 = a => {}
  7. // 多个参数
  8. var fn3 = function(a, b) {}
  9. var fn3 = (a, b) => {}
  10. // 可变参数
  11. var fn4 = function(a, b, ...args) {}
  12. var fn4 = (a, b, ...args) => {}

this指向

箭头函数没有自己的this 指针,它只会从自己的作用域链的上一层继承this

  1. function Person(){
  2. this.age = 0;
  3. setInterval(() => {
  4. this.age++;
  5. }, 1000);
  6. }
  7. var p = new Person();