1.this是什么?
- 谁调用当前函数或者方法, this就是谁
2.这三个方法的作用是什么?
- 这三个方法都是用于修改函数或者方法中的this的
2.1.bind方法作用
修改函数或者方法中的this为指定的对象, 并且会返回一个修改之后的新函数给我们
- 注意点: bind方法除了可以修改this以外, 还可以传递参数,只不过参数必须写在this对象的后面
2.2.call方法作用
- 修改函数或者方法中的this为指定的对象, 并且会立即调用修改之后的函数
- 注意点: call方法除了可以修改this以外, 还可以传递参数, 只不过参数必须写在this对象的后面
2.3.apply方法作用
- 修改函数或者方法中的this为指定的对象, 并且会立即调用修改之后的函数
- 注意点: apply方法除了可以修改this以外, 还可以传递参数,只不过参数必须通过数组的方式传递
let obj = {
name: "zs"
}
/*
// function test(a, b) {
// console.log(a, b);
// console.log(this);
// }
// test(10, 20);
// window.test();
// let fn = test.bind(obj, 10, 20);
// fn();
// test.call(obj, 10, 20);
// test.apply(obj, [10, 20]);
*/
function Person() {
this.name = "lnj";
this.say = function () {
console.log(this);
}
}
let p = new Person();
// p.say();
// let fn = p.say.bind(obj);
// fn();
// p.say.call(obj);
p.say.apply(obj);
学这些是为了解决
10.继承方式一