javascript中call和apply的区别

本文通过实例详细介绍了JavaScript中call和apply两个方法的区别与用法,重点解释了它们如何改变函数内部的this指向,并展示了参数传递的不同方式。

我理解javascript中call和apply的区别仅在于语法不同。

下例中分别调用call和apply对myObj进行修改,语法不同,但使用效果是一样的:


  1. var myObj = {  
  2.     "a":1,  
  3.     "b":2,  
  4.     "c":3  
  5. }  
  6. var myFunc = function(a,b,c){  
  7.     this.a=a;  
  8.     this.b=b;  
  9.     this.c=c;  
  10. }  
  11. myFunc.call(myObj,4,5,6);//参数个数无限制  
  12. iJs.showObject("myObj");  
  13. myFunc.apply(myObj,[7,8,9]);//第二个参数是数组  
  14. iJs.showObject("myObj"); 
调试信息: 
    
    [Object] myObj
        |--[number] a ------------- 4
        |--[number] b ------------- 5
        |--[number] c ------------- 6
    
    [Object] myObj
        |--[number] a ------------- 7
        |--[number] b ------------- 8
        |--[number] c ------------- 9


 本文转自 hexiaini235 51CTO博客,原文链接:http://blog.51cto.com/idata/1107836,如需转载请自行联系原作者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值