更新时间:2024-04-11 来源:快连程序员 浏览量:
call()和.apply()是JavaScript中用于调用函数的两种方法,它们的作用都是在特定的上下文中执行函数,并且可以传递参数给函数。
1.call()方法:
(1)call()方法允许我们调用一个函数,指定函数体内this对象的值,以及传递函数所需的参数列表。
(2)语法:function.call(thisArg, arg1, arg2, ...)
(3)第一个参数thisArg是函数执行时的上下文,即在函数内部使用this关键字所引用的对象。
(4)后续的参数是传递给函数的参数列表。
示例:
function greet(name) { console.log(`Hello, ${name}! I'm ${this.title}.`); } const context = { title: 'Mr' }; greet.call(context, 'John');
2.apply() 方法:
(1)apply() 方法也是用于调用函数,但是它接收的参数是一个数组或类数组对象,其中第一个元素表示函数执行时的上下文,第二个元素为函数参数列表。
(2)语法:
function.apply(thisArg, [argsArray])
示例:
function greet(name) { console.log(`Hello, ${name}! I'm ${this.title}.`); } const context = { title: 'Ms' }; const args = ['Jane']; greet.apply(context, args);
主要区别:
(1)在使用call()方法时,参数是按照函数的声明顺序一个个传递的,而在使用apply()方法时,参数被封装在一个数组中传递。
(2)当我们的参数已经存在于一个数组或类数组对象中时,使用 .apply()更为方便;而如果参数个数是已知的,或者我们想要逐个列出参数,那么使用 .call()会更合适。
【AI设计】北京143期毕业仅36天,全员拿下高薪offer!快连AI设计连续6期100%高薪就业
2025-09-19【跨境电商运营】深圳跨境电商运营毕业22个工作日,就业率91%+,最高薪资达13500元
2025-09-19【AI运维】郑州运维1期就业班,毕业14个工作日,班级93%同学已拿到Offer, 一线均薪资 1W+
2025-09-19【AI鸿蒙开发】上海校区AI鸿蒙开发4期5期,距离毕业21天,就业率91%,平均薪资14046元
2025-09-19【AI大模型开发-Python】毕业33个工作日,就业率已达到94.55%,班均薪资20763元
2025-09-19【AI智能应用开发-Java】毕业当天offer率91%,薪资1W+占比54.2%,班级均薪12k+
2025-09-19