javascript中call()、apply()、bind()的区别

javascript中call()、apply()、bind()的区别

call()、apply()、bind() 都是用来重定义 this 这个对象的

  如:  

         obj.myFun.call(xiao);
            
         obj.myFun.apply(xiao);   

         obj.myFun.bind(xiao)();  

  除了bind 方法后要立即执行符号apply和call差不多
  bind 返回的是一个新的函数,调用以后才能被执行

对比call 、bind 、 apply 传参情况
  

    obj.myFun.call(xiao,'杭州','上海'); 
     
  obj.myFun.apply(xiao,['杭州','上海']);     

  obj.myFun.bind(xiao,'杭州','上海')();       

   obj.myFun.bind(xiao,['杭州','上海'])();  

 总结

  call 、bind 、 apply 这三个函数的第一个参数都是 this 的指向对象;
  call的参数是直把参数分别放进去;
  apply的所有参数都必须放在一个数组里面传进去;
  bind返回是函数,它的参数和call 一样;
  当然,三者的参数不限定是string类型,允许是各种类型,包括函数 、 object等

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值