2020-11-07

**

js中改变this指向的几种方法

**
1.call()
既可以改变this指向也可以调用父函数的属性
语法

   <script>
      function Father(a){
         this.a = a
      }
      function Son(a){
          Father.call(this,a)
      }
     var son = new Son(1)   //可以传任意值  主要作用:继承
      console.log(son);   //1
     
    </script>入代码片

2.apply()
改变内部this指向,以数组形式传递参数
语法

  var f = {
            name: 'xx'
        }

        function Son(arr) {
            console.log(this);  // {name:'xx'}
            console.log(arr);    //pink

        }
        Son.apply(f, ['pink'])   //传递的是数组
        //一般用来求数组的最大值最小值
        var arr = [11,25,39]
        var max = Math.max.apply(Math,arr)
        var min = Math.min.apply(Math,arr)
        console.log(max,min);

bind()
不会调用原来的函数,可以改变原来函数中的this,返回的是原函数改变this后产生的新函数
bind 常用于不需要立即调用函数,但又要改变这个函数内部this指向时调用

var f={
            name:'xx'
        }

        function Son(){
            console.log(this);
        }
     var son = Son.bind(f)  //改变了this指向 但不会被调用
        son()  //用新函数接受调用后 this指向 原函数改变后的新函数 {name:'xx'}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值