JS复习之Call和Apply

  文章见于知乎:https://www.zhihu.com/question/20289071

  如果知道call和apply的创造原因,应该就能很方便的理解它们了。

  如果正常来说,创造这样一个构造函数与实例的话,是能直接使用的

       function cat(){
                
            }
            cat.prototype={
                food:'fish',
                say:function(){
                    alert('I Love You:'+this.food);
                }
            }
            var blackCat=new cat;
            blackCat.say();

 

  但如果让另一个实例使用say方法,那么就得让它拥有,但明显重写是不太智能的,所以就出现了call和apply

  

       var wilteDog={
                food:'bone'
            }
            blackCat.say.call(wilteDog);

  这样就可以让只有food属性的wilteDog对象使用wilte的say方法

  相关实例:

  

       function arr(){
                 var arg = arguments;
                 console.log([].join.call(arg,'B'));
            }
            arr('1','3')

 

  

转载于:https://www.cnblogs.com/myzsy/p/7806253.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值