一般情况下this指向那个调用它的对象
- 1.全局作用域 或 普通函数 中this指向
window
(定时器里面的this也指向window
)
<script>
console.log(this) // this 指向 window
function fn(){
console.log(this) // this 指向 window
}
fn()
setTimeout(function(){
console.log(this) // this 指向 window
},1000)
</script>
- 2.方法调用中 谁是
调用这个方法的对象
this指向谁
<button>点击</button>
<script>
var o = {
show : function(){
console.log(this) // this 指向 o 这个对象(因为是 o 调用的 show 方法)
}
}
o.show()
var btn = document.querySelector('button')
btn.addEventListener('click',function(){
console.log(this) // this 指向 button这个对象 (因为是 button 调用的)
})
</script>
- 3.构造函数中this指向
构造函数的实例对象
<script>
function Fun(){
console.log(this) // this 指向 fun 这个实例对象
}
var fun = new Fun()
</script>