1、在全局中this指向。
全局的this指向它指向的的是window
this=>window
<script>
// 直接输出this它指向的是window
console.log(this)
// 在这直接调用函数方法的时候他指像的也是window,也就是说他也是一个全局的对象
function arr() {
console.log(11)
}
arr()
</script>
2、在局部的this指向。
在局部的时候,谁调用它,它指向的就是谁。 this=>obj
<script>
let obj = {
name:'kele',
fn:function a(){
console.log('11')
},
fn2:function a(){
console.log('11')
},
}
//在这调用函数的方法
console.log(obj.fn)
console.log(obj.fn2)
</script>
3、箭头函数的this指向。
箭头函数没有this指向,因为定义的this就是作为上下文的this,因为箭头函数没有this,所有不能用作构造函数。
let obj1 = {
name: "kele",
fn: () => {
console.log(this);
},
fn2: () => {
console.log(this);
},
};
console.log(obj1.fn)
console.log(obj1.f2)
let arr = () => {
console.log(this);
};
console.log(arr)
小结。
this总是指向的是直接调用的,而不是间接调用的。- 如果有
new关键词的话,那么this指向的就是new出的对象 - 如果在事件里的话,
this指向的就是当前的事件,有特殊的在IE里面的accthEvent中的this指向的全局对象window
this指向我就先总结真么多,如果此文章对你有帮助那就那就是对我的鼓励。