javascript函数调用,call和apply

在js中我们调用一个自己定义的函数一般都是 函数名() 调用一个函数。

然而在javascript中还有两种调用方式     函数名.call() ,函数名.apply() 

其实如我们调用一个普通的函数用什么方式调用都是一样的效果,只是调用一些特殊的函数时用到call和apply是比较有用的。

call函数:call([thisobj,[arg1,[arg2]]])

apply函数:apply([thisobj,[arg1,arg2]])

这两个函数主要是用到this对象

 
      var v='window对象';
      var obj={v:'obj中的对象'};
            
      function show(){
    	  alert(this.v);
      }
      
      show();//window对象
      show.call(this);//window对象
      show.call(obj);//obj中的对象


call和apply函数功能上都是一样的,主要的不同就是传参的方式不同。

call的第一个参数函数中this的对象指向,调用函数要传的参数依次在后边传入即可。

apply只有两个参数可以传递。第一个参数函数中this的对象指向,第二参数是一个数组,调用函数要传递的参数,把要传递的参数放在一个数组传入。

      
      var a={name:'张三'};
      var b={name:'李四'};
      
      function show(sex,age){
    	  alert(this.name+':'+sex+':'+age);
      }
      
      show.call(a,'男',12);//张三:男:12
      show.call(b,'女',23);//李四:男:23
      show.apply(a,['女',23]);//张三:女:23
      show.apply(b,['男',12]);//李四:男:12



        个人理解不足之处多多指教




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值