JavaScript 的函数存在「定义时上下文」和「运行时上下文」以及「上下文是可以改变的」 call(),apply() 改变函数内部this的指向 即改变运行时上下文
function add(a,b){
console.log(a+b)
}
function sub(a,b){
console.log(a-b)
}
add.call(sub,1,1);//2
add.apply(sub,[1,1]);//2
实际运用场景
function changeStyle(attr,value){
this.style[attr] = value;
}
var box = document.getElementById("box");
window.changeStyle.call(box,"height","200px");
window.changeStyle.apply(box,["height","200px"]);