this是JS中一个关键字,this的指向是不确定的,可以动态改变,这样设计可以让代码更加灵活,复用性也更高,那么应该如何去理解this呢。
this有一个总原则:永远指向调用函数的那个对象
var obj = {
foo: function(){
console.log(this)
}
}
var bar = obj.foo
obj.foo() // 打印出的 this 是 obj
bar() // 打印出的 this 是 window
看上面这段代码,在obj
这个对象上有一个方法foo
,将这个方法赋值给bar
,然后调用它,这时候this指的当然就是obj
,然后执行bar()
,其实在全局作用域下,bar()
相当于window.bar()
所以此时this指的就是window,记住这句话
this永远指向调用函数的那个对象
this永远指向调用函数的那个对象
this永远指向调用函数的那个对象