JavaScript中call与apply方法的区别及用法
作者:木棉时间:2026-10-23 09:48:45浏览:151
本文通过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>作者最新文章
JS合并多个数组的三种方法:concat、spread与flat
2026-11-05 17:39:45
JavaScript怎么准确判断数据类型:typeof、instanceof与Object.prototype.toString
2026-11-05 17:09:21
JS中将数组和对象混合组装为JSON字符串
2026-11-05 16:41:42
JS运算符优先级与结合性的区别是什么?
2026-11-05 13:22:02
JS Map怎么只遍历Key或Value
2026-11-05 13:00:36
