普通函数调用
console.log(this) //Window
var aa = {
name:"aa",
fun: function(){
console.log(this)//{name: "aa", fun: ƒ}
}
}
aa.fun()
第一个打印输出语句是由window对象直接调用,所以this指向window,第二个是由aa对象直接调用,所以this指向aa。
var aa = {
name:"aa",
fun: function(){
function f(){
console.log(this) //window
}
f()
}
}
aa.fun()
与上一个不同的是,在fun函数中嵌套了一个f()函数,当我同样使用aa.fun去调用时,this指向window.这是因为f函数是在fun函数中,是属于普通函数调用,并没用通过aa对象直接调用,而是自执行,这时候f就属于全局函数