javascript的apply理解

本文通过示例解析JavaScript中对象方法的apply用法,展示了如何将一个对象的方法借用到另一个对象上执行,深入理解this在不同上下文中的指向。通过a.start.apply(b)的调用,可以看到方法虽然属于a,但在b对象上下文中执行,导致this指针指向b,进而改变了方法内部的行为。读者可以尝试更多应用实例以加深理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<script type="text/javascript">
       alert("ok");
       var a = {
           name: "我是a",
           show: function () { alert(this.name); },
           start: function () {
               alert("我是a的方法!");
               this.start();
           }
       },
         b = {
             name: "我是b",
             start: function () { alert("我是b的方法!"); }
         };
         f=function(){this.start()};
       
       a.start.apply(b); //可以理解为把a对象的start方法借给b对象用一下 
              
   </script>

运行结果

依次显示

ok

我是a的方法

我是b的方法

结论:apply就是把一个方法借给另一个对象去运行。方法还是a的只不过b玩了一下,但玩的时候

     这个a的这个方法就像是b的方法一样。所以this自然就是b了。就好比把你的游戏机借我玩

     一下是一个意思。

感兴趣的朋友

可以测试以下实例

f.apply(b);

f.apply(a);

a.show.apply(b);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

免费范文

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值