美文网首页
js中this的指向

js中this的指向

作者: 今晚打老虎_a3ca | 来源:发表于2021-12-14 12:38 被阅读0次

    哪个对象调用函数,函数中的this指向那个对象

    总结遇到的this指向的情况,直接上结论:

    1.定时器,延时器中 :this指向window
    2.普通的函数中:this指向window
    3.构造函数中:this指向实例化的对象
    4.箭头函数中:指向宿主对象
    可以这样理解:箭头函数没有自己的this,需要去它的上一层找,它内部的this指向就是外部代码块的this指向
    5.DOM0级事件的回调函数中指向window 例如:

     <button onclick="fn()">点击</button>
         <script>
             function fn(){
                 console.log(this);
             }
         </script>
    

    结果:this指向window

    6.DOM2级事件指向对应的节点对象

    修改this指向:call apply bind
    call和apply 调用该函数,并修改函数中this的指向
    两者区别:传入的参数不同

    1. 函数名. call(对象,实参1,实参2);
      第一个参数: 要让函数中this指向谁,就写谁
      后面的参数: 被调用函数要传入的实参,以逗号分隔

    2.函数名. apply(对象,数组);
    第一个参数: 要让函数中this指向谁,就写谁
    第二个参数: 要去传入一个数组,里面存放被调用函数需要的实参

    3.bind 不调用函数,克隆一个新的函数,并修改新函数中this的指向,将新的函数返回
    函数名. bind(对象[,实参]);
    第一个参数: 要让函数中this指向谁,就写谁

    相关文章

      网友评论

          本文标题:js中this的指向

          本文链接:https://www.haomeiwen.com/subject/hjiefrtx.html