一、 在普通的function函数中,谁调用,this就指向谁。
我们先思考如下一个例子:
问:d.getName()的值 是吕蒙 还是吕布?
看看结果,是吕布,为什么是吕布而不是吕蒙呢?
因为在普通的function中,谁调用这个函数,这个this就指向谁。
二、如果被多层对象调用了,this指向它的上层对象
如果把上面的对象在包一层对象
var obj = {
d: {
getName: function(){console.log(this)}
}
}
window.obj.d.getName();猜猜会打印出谁呢?
结果是 d对象。因为你最后调用getName方法的还是d对象 所以,谁调用 this就指向谁。
三、如果是构造函数中的this,this就指向一个空对象,举个例子
function fn() {
console.log(this)
}
var obj = new fn()
console.log(obj)