- 箭头函数
var obj = {
fun: () => {
console.log(this);
},
};
obj.fun();
结果:windos
- bind(),call(),apply()
let obj = {
fun: function (a, b) {
console.log(this);
console.log(a, b);
}
};
let obj2 = {
name: '我是this————obj2'
}obj.fun.call(obj2,'5','4')
obj.fun.apply(obj2,['6','7'])
const func = obj.fun.bind(obj2);
func('8','9')
结果:
{ name: '我是this————obj2' }
5 4
{ name: '我是this————obj2' }
6 7
{ name: '我是this————obj2' }
8 9
总结:由此可得:箭头函数不改变this指钟,call和apply是直接调用函数且第一个参数为this指向,call其他参数和正常函数参数一样,apply其他参数以数组形式传参,bind改变this指向,需要接收返回值,不是直接调用函数
JS改变this的方法(箭头函数,bind,call,apply)
最新推荐文章于 2023-05-04 10:13:41 发布