1、普通函数 this指向window
function fn() {
console.log('普通函数的this指向' + this);
}
fn(); //普通函数的this指向[object Window]
2、对象的方法 this指向的是对象o
var o = {
sayHi: function () {
console.log('对象方法的this指向' + this);
}
}
o.sayHi(); //对象方法的this指向[object Object]
3、构造函数 this指向alieen这个实例对象,原型对象里的this指的也是alieen这个实例对象
function Star(uname) {
this.uname = uname;
}
var alieen = new Star('alieenGu');
console.log(alieen); //Star {uname: 'alieenGu'}
4、绑定事件函数 this指向button这个html元素
var btn = document.querySelector('button');
btn.onclick = function () {
console.log('绑定时间函数的this:' + this);
} //点击后输出: 绑定时间函数的this:[object HTMLButtonElement]
5、定时器函数 this指向window
setTimeout(function () {
console.log('定时器的this:' + this);
}, 1000);//定时器的this:[object Window]
6、立即执行函数 this指向window
(function () {
console.log('立即执行函数的this:' + this);
})(); //立即执行函数的this:[object Window]