理解call和apply方法

1、Call和Apply的作用完全一样

2、Call传递的是单个参数,Apply传递的是一个数组参数

3、Call和Apply可理解为--被准许使用的意思

打个比方,之前农村家里比较穷,农村也没有路灯啥的,一到晚上到处是漆黑一片,那个时候也没有几家有手电筒的,自己家没有怎么办,就要到别人家里借,不然走夜路真的怕!



//亲戚家
var otherHome = {
   tips: '我家有电筒',
   flashLight: function(meg){
      if(!meg) meg = '';
      console.log(this.tips + meg)
   }
}
//我的家
var myHome = {
   tips:'我的家穷啊,',
}
otherHome.flashLight();//我家里有电筒
otherHome.flashLight.call(myHome,'借你家电筒用一下');//我的家穷啊,借你家电筒用一下
//理解为亲戚允许我使用他家的电筒了
//现在我的家可以说是这个样子的
var myHome = {
   tips:'我的家穷啊,',
   //注意:下面的代码不是真的在myHome里了,只是在执行
   //otherHome.flashLight.call(myHome,'借你家电筒用一下')的时候类似于下面这种形式而已
   //你可以打印一下myHome其实还是没变的,
   //当然,手电筒怎么可能真给你,只是借你用一下而已
   flashLight: function(meg){
      if(!meg) meg = '';
      console.log(this.tips + meg)
   }
}

作者:zsbox
链接:https://www.zhihu.com/question/20289071/answer/222203336
来源:知乎

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值