箭头函数中的this


<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>
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容