如何确认this的值,以及手写call apply bind
1. 全局调用
在全局执行上下文中(在任何函数体外部),this 都指向全局对象。在浏览器中,全局对象是 window,在 Node.js 中,全局对象是 global。
console.log(this === window); // true
2. 函数内部调用
在函数内部,this 的值取决于函数是如何被调用的。
严格or严格this都为调用者
const food = {
name:'猪脚饭',
eat(){
console.log(this);
}
}
food.eat(); //{name: '猪脚饭', eat: ƒ}
3.call apply bind 箭头函数
function fn(a,b){
console.log(this);
console.log(a,b);
}
const person = {
name:'张三'
}
3.1 调用时指定this的值 call apply
// call 挨个传入参数
fn.call(person,10,20); //{name: '张三'} 10 20
//apply 传入数组
fn.apply(person,[10,20]); //{name: '张三'} 10 20
3.2 创建时指定this的值 bind 箭头函数
//bind
<

最低0.47元/天 解锁文章

4871

被折叠的 条评论
为什么被折叠?



