this的指向问题,简单来说就是谁调用我,我就指向谁。
以函数的形式调用,对象是window
function fun() {
console.log(this);//this指向window
}
fun();
//window
以方法的形式调用,对象就是调用方法的那个对象
obj.sayname()
var obj1 = {
name:"张三",
SayName:fun
console.log(this.SayName); //回到函数fun,但对象为obj1
}
实验一下:
var obj2 = {
name:"李四",
SayName:fun
console.log(this.name); //输出"李四"
}
var name="我是全局变量王五"
console.log(this.name);//输出"我是全局变量王五" ,因为这里的对象为window
简单来说就是谁调用this,this就指向谁。
此外在html中,this指向接收事件的dom
<button onclick = "this.style.display='none'">点我我就消失!</button>
这里指向button