代码如下
var a={
name:"xuxu",
getname:function(){
console.log(this);
var b=function(){
console.log(this);
}
b();
console.log(Window);
}
}
a.getname();
当函数不作为对象的属性被调用时,也就是我们常说的普通函数方式,此时的this总是指向全局对象 也就是说一个对象的属性是一个函数,如果这个函数由这个对象调用,那么这个函数里面的this是指向这个对象的,但是这个函数内部的函数,是按上面这句话执行的,因为b函数不是直接当做a的属性调用的,它是普通调用因此默认指向window
网友评论