js函数中有关this指向总结
1.普通函数调用时,this指向window;
// 定义一个函数
function fn () {
console.log(this);
}
// 调用
fn(); // this→window
2.构造函数调用时,this指向当前所创建的对象;
// 构造函数
function Student (name, age) {
this.name = name;
this.age = age;
console.log(this);
}
var stu1 = new Student('张三', '李四'); // this →
当前所创建的这个学生实例对象
3.对象的方法调用时,this指向方法所属的对象;
// 构造函数
function Student (name, age) {
this.name = name;
this.age = age;
}
// 原型中的方法
Student.prototype.sayHi = function() {
console.log(this);
console.log( this === stu1);
};
var stu1 = new Student('张三', '李四');
stu1.sayHi(); // this → stu1
4.事件绑定的方法,this 指向事件源;
// id为box的div元素对象
var box = document.getElementById('box');
// 为box注册事件
box.onclick = function () {
console.log(this);
};
5.定时器函数,this指向window;
setInterval(function() { // 省略了window
console.log(this);
}, 500);