相同点:
apply和call方法都是Function.prototype原型中,他们可以改变this的指向,而且都是直接调用函数
不同点:
apply:参数传入的是数组
call:参数传入的是一个一个的
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script>
//call和apply通过对象调用的时候,如果传入的是null,那么函数中的this就是window对象
//call和apply通过对象调用的时候,如果传入的是对象,那么函数中的this就是当前传入的对象
//如果传入的是数组,那么this就是当前的数组对象
function f1(num1, num2) {
//当前this的指向
console.log(this);
//调用this中的属性
console.log("name=" + this.name);
console.log(num1+num2);
}
var stu = {name:"kevin", age:12};
f1(1, 2);
// call和apply调用的时候,传入的第一个参数改变了f1中this的指向
// apply的参数要使用数组
// call和apply方法都可以调用f1中的属性
f1.call(stu, 10, 20);
f1.apply(stu, [100, 200]);
</script>
</body>
</html>