改变this指向
call()
apply()
bind()
call和apply都能函数调用(立即调用),参数1都是要改变this的方向,参数二都是调用函数时需要传递的实参,只是apply需要以数组的方式传参
bind没有调用函数的功能,但会返回一个新函数,参数1,2和call相同
for(var i=0;i<btns.length;i++){
btns[i].onclick=function(){
// 点击事件函数内部的this指的是当前点击的button
setTimeout(function(){
// this.style.color=red;
// 原本定时器内部this指向window
this.style.color='red';
}.bind(this),2000)
// this.style.color='red';
}
}
console.log(p2.getAge.apply(p1,[2021]));
console.log(p2.getAge.call(p1,2021));