收藏
回答

为什么我的计时器里面的this指向上下文 ?

回答关注问题邀请回答
收藏

2 个回答

  • 养乐多💍
    养乐多💍
    2023-07-05

    你用箭头函数就和第一个this指向一样了

    setInterval(()=>{

    console.log(this);

    },2000)

    2023-07-05
    有用 1
    回复 4
    • A白宏A
      A白宏A
      2023-07-05
      感谢大佬,确实好使,好久没用了 忘了计时器怎么写了
      2023-07-05
      回复
    • A白宏A
      A白宏A
      2023-07-05
      在公司前端兼测试,经常注册大量账号,想着写个注册机
      2023-07-05
      回复
    • 养乐多💍
      养乐多💍
      2023-07-05回复A白宏A
      你要用function的话就得在外层将this赋值给that,在时间函数里输出that,就是外层的this,这个是this指向问题,和是不是时间函数没有关系
      2023-07-05
      回复
    • A白宏A
      A白宏A
      2023-07-05
      哦哦 懂了  谢谢大佬
      2023-07-05
      回复
  • 大熊
    大熊
    2023-07-05

    楼上正解

    什么是this

    this 是 JavaScript 中的一个关键字。依赖于函数调用的上下文条件。

    函数的this指向谁,其实可以分为两种情况讨论:

    普通函数的this:

    普通函数的this指向函数调用者,如果找不到调用者,默认指向window。普通函数的this指向可以通过call\apply\bind去改变

    箭头函数的this

    箭头函数本身并无this,箭头函数的this由定义箭头函数时所处的作用域决定,即箭头函数的this永远指向定义箭头函数时所在的作用域的this(也可以说是上层作用域,强调的是作用域!)。箭头函数的this只和定义时的作用域this有关,和调用者无关,和调用环境无关,也永远不会改变。


    2023-07-05
    有用 1
    回复 2
    • 养乐多💍
      养乐多💍
      2023-07-05
      够详细
      2023-07-05
      回复
    • A白宏A
      A白宏A
      2023-07-05
      所以我这个this指向了function 因为是function 调用的
      2023-07-05
      回复
登录 后发表内容