**
Apply 和call 的作用及区别
**
-
Call和apply的作用都是强制改变this的指向 Call和apply的区别在于传参时的不同,call和apply的的第一个参数都是对象,第二个参数call传的是单个参数, 而apply传的是一个数组或者是一个参数
当this没有指向时,this指向window
function show(a, b) {
console.log(this);//window
console.log(a,b);//1,2
}
show(1,2);
当用call强制this指向时
function show(a, b) {
console.log(this);//String { “show” }
console.log(a,b);//1,2
}
show.call(“show”,1,2);
这时的this就被强制改为字符串show
当然也可以是个对象
var num = {
a:3,
b:4
}
function show(a, b) {
console.log(this.a,this.b);//3,4
}
show.call(num);
当call传入对象num时,this就指向对象num,这时this.a 就是num的a,th