day13--call apply bind

文章目录

call

1.立即执行函数
2.改变this指向
3.传参 .call(thisObj, arg1, arg2, arg3, arg4); //后面的参数都是实参
4.适用于继承

apply

1.立即执行函数
2.改变this指向
3.传参 .apply(thisObj, [args]); //后面的参数都是实参
4.有关数组的操作

    <script>
        var arr = [1, 2, 3]
        var max = Math.max.apply(Math, arr)
        console.log(max)
    </script>

function show(a,...arguments){
    console.log(...arguments)
}

show(1,2,3) //2 3

bind()

1.不会立即执行函数
2.改变this指向
3.传参 .call(thisObj, arg1, arg2, arg3, arg4); //后面的参数都是实参
4.适用于不会立即调用但又需要改变this,比如定时器

    <button>点击禁用3</button>
    <script>
        var num = {}
        var btn = document.querySelector("button")
        btn.onclick = function() {
            this.disabled = true
            setTimeout(function() {
                    this.disabled = false
                }.bind(this), 3000) //this btn
        }
</script>

//如果不使用bind 
  var btn=document.querySelector("button")
  btn.onclick=function(){
      btn.disabled=true
      setTimeout(function(){
          btn.disabled=false
      },3000)
  }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值