this指向问题
this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this指向谁。一般情况下this的最终指向为那个调用它的对象
了解this的几个指向
1、在全局作用域或者普通函数中this指向全局对象window(定时器里的this指向window)
2.方法调用中调用this指向调用它的对象
3、构造函数中的this指向构造函数的实例·
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title>
</head>
<body>
<button>点击</button>
<script>
// 1、在全局作用域或者普通函数中this指向全局对象window(定时器里的this指向window)
console.log(this); //window
window.setInterval(function() {
console.log(this);
}, 1000); //window
//2.方法调用中调用this指向调用它的对象
var o = {
sayHi: function() {
console.log(this); //this指向的是o这个对象
}
}
o.sayHi();
var btn = document.querySelector("button");
btn.onclick = function() {
console.log(this); //指向button
}
//3、构造函数中的this指向构造函数的实例·
function Fun() {
console.log(this);
}
var fun = new Fun(); //this指向的是Fun实例对象
</script>
</body>
</html>