废话少说直接上总结
作为函数调用,this指向全局作用域
作为方法调用,this指向调用调用者
什么?
怎么理解?
直接看方法前面有没有调用者
function fn() {
console.log(this.a)
}
var obj = {
name : 'wxs',
b: fn
}
console.log(fn == obj.b)
fn()
obj.b()
上述代码,打印的值为true,说明fn等于obj.b,但是fn是函数,obj.b是方法。
函数直接执行,方法有调用者,上述例子中,b的调用者就是“.”之前的对象-------obj。
在事件中,this 指的是接收事件的元素。
在构造函数中,this指向新创建的对象。