首页 > javascript的call()方法与apply()方法的理解

javascript的call()方法与apply()方法的理解

先看一段代码

function cat() {}
cat.prototype={food:'fish',say:function () {console.log('I love '+this.food);}
};var blackCat = new cat();
blackCat.say();


这时,控制台输出 I love fish

若此时,有另一个对象
Dog={food:'bones and shit'};


dog对象没有say方法,这时我们可以这样写
blackCat.say.call(Dog);
此时,控制台输出 I love bones and shit



总的来说,就是将前者绑定到call中的对象,让call中的对象具备前者的方法和属性,或者说是继承。
obj.call(thisObj,arg1,arg2,...);

obj.apply(thisObj,[arg1,arg2,...]);

apply与call作用一样,只是参数不同,call接受连续参数,apply接受数组参数。



记住JavaScript里面一切皆对象




转载于:https://www.cnblogs.com/JennySchecter/p/8047032.html

更多相关:

  • 点云PCL免费知识星球,点云论文速读。文章:DSP-SLAM: Object Oriented SLAM with Deep Shape Priors作者:Jingwen Wang Martin Runz Lourdes Agapito编译:点云PCL代码:https://github.com/JingwenWang95/DSP-S...

  • RAM缓存 新RAM缓存算法(CLFUS) 新的RAM缓存使用的创意来自许多缓存替换策略和算法,包括LRU,LFU,CLOCK,GDFS及2Q,它被命名为时钟周期内最小频繁使用大小算法CLFUS(Clocked Least Frequently Used by Size)。它避开了任何专利算法,具有如下特性: 均衡最近性(Rec...

  • MP4 |视频:AVC,1280×720 30 fps |音频:AAC,48 KHz,2 Ch |时长:2h 12m 语言:英语+中英文字幕(根据原英文字幕机译更准确)|大小解压后:560M C4D是一个有抱负的运动图形艺术家和设计师的重要工具。借助C4D,您可以使用3D对象、动态效果和动画来增强运动图形、模型和可视化效果。本课...

  • 文章目录先说问题:再说解决尝试1:尝试2(该尝试建议先在自己环境搭配对应业务测试通过后再现场尝试): 感谢 学无止境996同学的陪伴和vigourtyy美丽女友的支持,直到这个解决问题的深夜 先说问题: ceph 12.2.1生产环境:3副本 tier + 3副本data 机房在拥有业务的情况下重启集群交换机,产生如下场景...

  • 这周主要学习了java中的类和对象的知识点,发现和C++中的类和对象极为相似,对于类和对象的概念理解起来也简单。同时在自学的过程中也把类的知识重新复习巩固了一下(如类的三大特征:继承,封装和多态,构造,成员对象的访问权限,构造,无参有参函数的调用等),同时也了解到一些新的概念,比如类对象创建和引用占据堆内存和栈内存,输出对象时默认调...

  • 转自:http://helloaq.iteye.com/blog/221614 exec 和 call 执行一个procedure时,   exec是sqlplus的命令,只能在sqlplus中使用。 call是sql命令,任何工具都可以使用 转载于:https://www.cnblogs.com/zerocc/archive/...

  • <% '========================================================= '類名: Ms SQL 操作類 '作者: Athrun '版本: V 0.1 '開發日期:2012-4-14 '修改日期:2012-4-14 'Email: [email protected] 'Dim...