<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>bind-call-apply方法</title>
<script>
// bind方法
// 将函数或者方法中的this修改为指定的对象, 会返回一个修改之后新的函数给我们
// 该方法除了修改this之外, 还可以传递参数, 并且参数必须写在this的后面
// call方法
// 将函数或者方法中的this修改为指定的对象, 会立即调用修改之后的函数
// 该方法除了修改this之外, 还可以传递参数, 并且参数必须写在this的后面
// apply方法
// 将函数或者方法中的this修改为指定的对象, 会立即调用修改之后的函数
// 该方法除了修改this之外, 还可以传递参数, 并且参数必须以数组的形式写在this的后面
let obj = {
name: "zs"
};
/*
// 修改函数中的this
// function test(a, b) {
// console.log(a, b);
// console.log(this);
// }
// 通过bind修改
// let fn = test.bind(obj, 1, 2);
// fn();
// 通过call修改
// test.call(obj, 3, 4);
//通过apply修改
// test.apply(obj, [5, 6]);
*/
// 修改方法中的this
// function Person() {
// this.name = null;
// this.age = 10;
// this.fun = function () {
// console.log(this);
// };
// }
// let p = new Person();
// 通过bind修改
// let fn = p.fun.bind(obj);
// fn();
// 通过call修改
// p.fun.call(obj);
// 通过apply修改
// p.fun.apply(obj);
</script>
</head>
<body>
</body>
</html>