js中call和apply的用法和区别

我来纠错
call 和 apply 都是为了改变某个函数运行时,函数体内部 this 的指向。
call 和 apply二者的作用完全一样,只是接受参数的方式不太一样。

function aaa(name){
	this.name = name;
	this.age = 16;
};
function bbb(name){
	aaa.call(this,name); //call的参数,通过第1个之后的参数用逗号分隔传入。
	//aaa.apply(this,arguments); //和call的作用一样,只不过apply第二个参数是传得数组。
	this.work = '开发';
}
var newb = new bbb('安云'); 
var newa = new aaa('安云'); 
console.log(newb);   //输出:bbb {name: "安云", age: 16, work: "开发"},说明bbb继承了aaa的所有属性。
console.log(newa);    //输出:bbb {name: "安云", age: 16},aaa没有继承任何bbb的属性。
发送
热门关键词:
命令
知识类型:
标题描述:
详细解答:

提交审核您编辑的知识会经过 前端大牛 人工审核。