Bootstrap

Vue - 箭头函数 this

<body>
  <script>
    const obj = {
      aaa() {
        setTimeout(function() {
          console.log("t1", this) // window
        })
        setTimeout(() => {
          console.log("t2",this) // obj对象
        })
      }
    }
    obj.aaa()
  </script>
</body>

    问:箭头函数中的this如何查找?
    答:向外层作用域中,一层层查找this,直到有this的定义

<body>
  <script>
    setTimeout(function() {
      console.log("t1", this) // window
    }, 1000)

    setTimeout(() => {
      console.log("t2",this)
    }, 1000)
  </script>
</body>

<body>
  <script>
    const obj = {
      aaa() {
        setTimeout(function() {
          setTimeout(function() {
            console.log("t1", this) // window
          })

          setTimeout(() => {
            console.log("t2", this) // window
          })
        })

        setTimeout(() => {
          setTimeout(function() {
            console.log("t3", this) // window
          })

          setTimeout(() => {
            console.log("t4", this) // window
          })
        })
      }
    }
    obj.aaa()
  </script>
</body>

;