Javascript中的this指向问题
javascript中this指向问题核心(本质):谁调用指向谁.
1.普通函数中的this
function fun() {
console.log(this); //window this指向window
}
fun();
2.构造函数或者构造函数原型对象中的this
function Fun() {
this.user = 'Irene';
}
var f = new Fun();
console.log(f.user); //Irene this指向实例对象f
3.使用了call()和apply()方法的this
function fun() {
console.log(this); //{name: "Irene"}
}
var obj = {
name: 'Irene'
}
fun.call(obj); //call改变了this指向, this指向obj
fun.apply(obj); //apply改变了this指向, this指向obj
4.对象的方法中的this
var obj = {
fu: function() {
console.log(this); //{fu: ƒ} this指向obj
}
}
obj.fu();
5.事件绑定及事件监听中的this
var box = document.querySelector('.box');
box.onclick = function() {
console.log(this);
//<div class="box"></div> this指向元素对象box
}
6.定时器中函数的this
setInterval(function() {
console.log(this); //window this指向window
}, 5000)
7.严格模式下的this
function fun() {
"use strict";
console.log(this); //undefined this指向undefined
}
fun();