箭头函数中的this

2019-09-26  本文已影响0人  我的昵称在不在

<script>
    // 什么时候使用箭头
    // 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()
  </script>
上一篇下一篇

猜你喜欢

热点阅读