javascript 中的call和apply实例

学习使用call和apply,我想需要问自己两个问题

1. 什么场景下需要使用call或者apply
2. 如何使用

首先什么时候需要使用呢,看代码

function Animal(nameValue) {
	this.name = nameValue;
	this.showName = function(aValue, bValue) {
		return this.name + aValue + bValue;
	}
}

function Cat(nameValue) {
	this.name = nameValue;
}

两个函数Animal, Cat, 其中Animal中有showName这个方法,那如果Cat也想用这个方法的话一定需要自己也定义一个么?答案是否定的,这时候就是要用到call或者apply的时候了。

var animal = new Animal("Animal");
var cat = new Cat("Cat");

var nameCall = animal.showName.call(cat, "|a", "|b");
console.log(nameCall); // Cat|a|b
var nameApply = animal.showName.apply(cat,["|a","|b"]);
console.log(nameApply); // Cat|a|b


以上例子很清楚的展示了即使cat没有showName这个方法也可以通过call或者apply借用animal的showName方法。

当然他们两个的区别也很明显,就是需要传变量的时候,call是一个一个传,apply是以数组形式传


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值