- this是JavaScript语言的一个关键字
- 它是函数运行时,在函数体内部自动生成的一个对象,只能在函数体内部使用。
- 根据函数的不同使用场合,this有不同的值
- 总的来说,this就是函数运行时存在的环境对象。
- 函数在全局环境下调用 → this指向 window || global
function foo(){
console.log(this)
}
foo();
复制代码
- 函数作为对象中的一个方法进行调用 → this指向的是当前调用对象
var obj = {
username : 'aa'
foo: function(){
console.log(this)
}
}
obj.foo();
复制代码
- 函数作为事件绑定中的回调函数来使用时 → this指向触发事件的元素
var div = document.getElementById('div');
div.addEventListener('click',function(){
console.log(this)
})
var ul = document.querySelector('ul');
ul.addEventListener('click',function(e){
console.log(this)
})
复制代码
- 函数作为一个构造函数,进行实例化操作时 → this指向当前实例化对象
function foo(){
this.name = 'aa'//f1.name = 'aa'
this.age = 18
}
const f1 = new Foo()