3种方法改变this的指向

Posted zhang-hong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了3种方法改变this的指向相关的知识,希望对你有一定的参考价值。

<body>
    <div style="width: 200px;height: 200px;hotpink;"></div>
    <script>
        
const fn = function(a,b){
            console.log(this.name + this.age + "是个大傻瓜" + a + b )
        }
        const obj = {
            name:"JACK",
            age:18
        }
</script>
       fn.call(obj,1,2)  //  1、call  此时fn内部的this指向的就是指定的dv
                  只需要让  fn 函数内部的 this 指向 obj 就可以使用  Obj.name
                        第一个参数就是 要让 this 指向谁就写那个东西
                        从第二个参数开始 就是依次给函数传参
  fn.apply(obj,[1,2])  //  2 apply   第一个参数 也是 this 的指向    第二个参数 是一个数组 数组里面的数据就是依次给函数传参
 
  
  fn.bind(obj)(1,2)  //  3、bind  不会立即调用  会返回一个已经改变 this 指向的新的函数 
                         bind 第一个参数 也是 this 的指向
                         如果要传参 要写在 第二个 () 里面
  
上面三种方法都是改变this的指向。
 

以上是关于3种方法改变this的指向的主要内容,如果未能解决你的问题,请参考以下文章

可以改变this指向的方法

改变javascript函数内部this指针指向的三种方法

改变函数内this指向方法——callapplybind

什么是this 改变this指向的方法

改变this指向

函数的定义和调用 + 改变this指向方法 + 闭包 + 递归