call()与apply()的作用与区别

原文:https://blog.csdn.net/mandyucan/article/details/80820139
每个函数都包含两个非继承而来的方法:apply()和call()。;

call与apply都属于Function.prototype的一个方法,所以每个function实例都有call、apply属性;

作用
call()方法和apply()方法的作用相同:改变this指向。

区别
他们的区别在于接收参数的方式不同:

call():第一个参数是this值没有变化,变化的是其余参数都直接传递给函数。在使用call()方法时,传递给函数的参数必须逐个列举出来。

apply():传递给函数的是参数数组

如下代码做出解释:

function add(c, d){ 
    return this.a + this.b + c + d; 
} 
var o = {a:1, b:3}; 
add.call(o, 5, 7); // 1 + 3 + 5 + 7 = 16 
add.apply(o, [10, 20]); // 1 + 3 + 10 + 20 = 34 

this指针指到apply()的括号里面了

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 8,257评论 2赞 17
  • 参考《JavaScript设计模式与开发实践》 this 跟别的语言大相径庭的是,JavaScript的this总...
    16manman阅读 678评论 0赞 0
  • 概要 64学时 3.5学分 章节安排 电子商务网站概况 HTML5+CSS3 JavaScript Node 电子...
    阿啊阿吖丁阅读 10,081评论 0赞 3
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 29,317评论 1赞 45
  • 通过亲子阅读孩子的阅读能力和兴趣也提高了,也让我对孩子加深了了解,看着儿子一天天长大,一天天的进步,让我...
    别惹我_0fec阅读 172评论 0赞 0

友情链接更多精彩内容