this指向在函数定义时是确定不了的,只有函数执行的时候才能确定this指向。一般情况下this的最终指向是那个调用它的对象。
1.在对象方法中,this指向方法的调用者
e.g. var o = {
sayHi: function() {
console.log(this);//this指向的是o这个对象
}
2.全局作用域或者普通函数中this指向全局对象window(定时器也是)
e.g. console.log(this);
e.g. function fn(){
console.log(this);
}
fn();
e.g. setTimeout(function() {
console.log(this);
},1000);
三例都是返回window对象哦
3.严格模式下不允许默认绑定,this是undefined
4.构造函数中this指向构造函数的实例
function Fun() {
console.log(this);//this指向的是Fun实例对象
}
var fun = new Fun();
5.事件中,this指的是接收事件的元素。