call() 和 apply() 的含义和区别?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
首先说明两个方法的含义:
- call:调用一个对象的一个方法,用另一个对象替换当前对象。例如:B.call(A, args1,args2);即 A 对象调用 B 对象的方法。 - apply:调用一个对象的一个方法,用另一个对象替换当前对象。例如:B.apply(A, arguments);即 A 对象应用 B 对象的方法。 call 与 apply 的相同点:
方法的含义是一样的,即方法功能是一样的; 第一个参数的作用是一样的; call 与 apply 的不同点:两者传入的列表形式不一样
call 可以传入多个参数; apply 只能传入两个参数,所以其第二个参数往往是作为数组形式传入