JavaScript中apply与call方法的区别及用法详解

作者:异步漫步

时间:2026-10-29

浏览:409

本文深入解析JavaScript中apply与call方法的异同。两者核心区别在于参数传递形式:call接收离散参数列表,而apply接收参数数组。通过具体代码示例展示如何构建参数数组并配合apply使用,实现与call等价的功能调用,帮助开发者灵活掌握函数上下文绑定与参数传递技巧。

文章目录

apply与call方法的基本概念

此前我们已探讨过JavaScript中的Call方法,本文将重点分析与Call方法功能相近的apply方法。

apply与call的对比

两者的核心差异在于参数传递的形式:是直接传递参数列表,还是传递包含参数的数组。

以下是Call方法的具体用法示例。

代码实现如下:

theFunction.call(valueForThis, arg1, arg2, ...)

而apply方法的调用方式如下所示:


代码实现如下:

theFunction.apply(valueForThis, arrayOfArgs)

因此,我们可以将参数封装为数组形式。


代码实现如下:

arrayOfArgs = [arg1, arg2, ...];

JavaScript apply方法实战解析

JavaScript apply方法详解

首先回顾之前介绍的Call方法用法。

代码实现如下:

function print(p1, p2) {
console.log( p1 + ' ' + p2);
}
print.call(undefined, "Hello", "World");

基于上述分析,我们可以得出以下结论。


代码实现如下:

args = "Hello", "World";
function print(p1, p2) {
console.log( p1 + ' ' + p2);
}
print.call(undefined, args);

这两种方式在逻辑上是等价的,实际运行结果同样输出"Hello,World"。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章