<script>
//最简单的例子,正常传值
function fun(a,b,c){
return a+b+c;
}
let sum = fun.call(this,1,2,3);
console.log(sum);//6
let sum1 = fun.apply(this,[1,2,3]);
console.log(sum1);//6
function numSum(num1,num2){
return num1+num2;
}
//传入一个arguments,arguments说白了就是这个函数传入的实参[num1,num2]
function applySum(num1,num2){
return numSum.apply(this,arguments);//给numSum()传入arguments([num1,num2])
}
let sum3 = applySum(2,3);//传入实参
console.log(sum3);//5
</script>
他俩的作用:改变作用域,这也是他们真正强大的地方
<script>
//call(),apply()改变作用域
window.color = 'red';
var obj = {
color:'blue'
};
function sayColor(){
console.log(this.color);
}
sayColor();//red
sayColor.call(this);//red
sayColor.call(window);//red
sayColor.call(obj);//blue
</script>