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

作者:木棉

时间:2026-10-23

浏览:150

本文通过JavaScript代码示例,详细解析call和apply两个方法的用法。两者均用于改变函数执行时的this指向,核心区别在于参数传递方式:call接受离散参数列表,而apply接受参数数组。通过Animal和Cat对象的继承模拟,直观展示如何复用方法并传递上下文。

文章目录

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

具体示例如下所示:


// 复制上述代码进行测试

相关代码实现如下:

<script>
/** 
/** 定义Animal构造函数 **/
*/ 
function Animal(){
this.name='Amimal';
this.showName=function(){
alert(this.name);
}; 
} 
/* 
/** 定义Cat构造函数 **/
*/ 
function Cat(){
this.name='cat';
} 
var animal=new Animal;//实例化Animal对象
var cat=new Cat;//实例化Cat对象
animal.showName.call(cat,'','');//调用call方法,输出结果为cat,表明showName函数内部的this已指向cat对象
animal.showName.apply(cat,[]);//调用apply方法,输出结果同样为cat
//call与apply的主要区别在于参数传递形式:call方法的语法为function.call(obj,param1,param2……),即逐个传递参数;而apply方法的语法为function.apply(obj,[params]),即接收一个包含所有参数的数组。
</script>

实用工具推荐

电子包浆

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

使用 ›
图片压缩

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

使用 ›
相关文章