天天看点

Vue之『箭头函数』箭头函数:

箭头函数:

一种定义函数的方式

直接定义函数

const aaa = function () {

  }
           

对象字面量中定义函数

const obj = {
    bbb() {

    }
  }
           

.ES6中的箭头函数

// const ccc = (参数列表) => {
  //
  // }
  const ccc = () => {

  }
           

箭头函数参数问题

一个参数

const power = num => {
    return num * num
  }
           

二个参数

const sum = (num1, num2) => {
    return num1 + num2
  }
           

箭头函数代码量问题

一行代码

const mul = (num1, num2) => num1 * num2
  console.log(mul(20, 30));
           

多行代码

const test = () => {
    console.log('Hello World');
    console.log('Hello Vuejs');
  }
           

什么时候使用箭头

// setTimeout(function () {
  //   console.log(this);
  // }, 1000)
  //
  // setTimeout(() => {
  //   console.log(this);
  // }, 1000)
           

箭头函数中的this是如何查找?

向外层作用域中, 一层层查找this,直到有this的定义。

// const obj = {
  //   aaa() {
  //     setTimeout(function () {
  //       console.log(this); // window
  //     })
  //
  //     setTimeout(() => {
  //       console.log(this); // obj对象
  //     })
  //   }
  // }
  //
  // obj.aaa()


  const obj = {
    aaa() {
      setTimeout(function () {
        setTimeout(function () {
          console.log(this); // window
        })

        setTimeout(() => {
          console.log(this); // window
        })
      })

      setTimeout(() => {
        setTimeout(function () {
          console.log(this); // window
        })

        setTimeout(() => {
          console.log(this); // obj
        })
      })
    }
  }
  obj.aaa()
           

继续阅读