## this的指向取决是该函数被调用是的对象。
function test(){
var name=123;
console.log(this.name);
console.log(this);
}
test() ; //<empty string> window
window.test() ; //<empty string> window
#### window 是js的全局对象。
#### 总结1:如果函数有this,但是没有被上一级对象调用,这个时候window作为全局对象,在非严格模式下,this指向的就是window。
var o={
name:123,
test:function(){
console.log(this.name);
}
}
o.test() ; //123
#### 总结2:如果函数中有this,这个函数被上一级对象所调用,这是this,就是指向上一级对象。
var o= {
name:123,
type:'boy',
f: {
name:456,
test:function(){
console.log(this.name); //456
console.log(this.type); //undefined
}
}
};
o.f.test() ;
#### 总结3:如果这个函数包含多个对象,尽管该函数被最外层对象调用,this指向的也是上一级对象。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。