call 和apply通常是用来修改函数的上下文,函数中的this指针将被替代为它们的第一个参数。
var jack={
name:"jack",
age:20
}
var join={
name:"join",
age:19
}
function printName(){
return this.name;
}
var arr=printName.call(jack);
console.log(arr)//输出的结果为 jack。
var sole=printName.call(join);
console.log(sole)//join
这是只有一个参数的时候,它们的用法是一样的如果有多个参数apply的第二个参数为一个函数所需要的参数组成的数组,call则是需要跟若干个参数
function setName(name){
this.name=name;
}
setName.apply(jack,["Jack Setp."]);
console.log(printName.apply(jack))//结果为Jack Setp.
function setName(name){
this.name=name;
}
setName.call(join,"Join Abruzzi.");
console.log(printName.apply(join))//Join Abruzzi.
call后的若干个参数用(,)隔开就好了!
本文详细介绍了JavaScript中call和apply函数的区别与用法,通过示例展示了如何利用这两个函数来改变函数内部this指向,适用于初学者及需要复习相关知识点的开发者。

被折叠的 条评论
为什么被折叠?



