列子1
1 function a(){ 2 var user =" 你好"; 3 console.log(this.user); //undefined 4 console.log(this); //Window 5 } 6 a();
this最终指向的是调用它的对象,这里的函数a实际是被Window对象所点出来的
列子2
1 var o = { 2 user:"你好", 3 fn:function(){ 4 console.log(this.user); //你好 5 } 6 } 7 o.fn();
这里的this指向的是对象o,因为你调用这个fn是通过o.fn()执行的,那自然指向就是对象o,这里再次强调一点,this的指向在函数创建的时候是决定不了的,在调用的时候才能决定,谁调用的就指向谁,一定要搞清楚这个。
构造函数版this:
1 function Fn(){ 2 this.user = "你好"; 3 } 4 var a = new Fn(); 5 console.log(a.user); //你好
调用这个函数Fn的是对象a,那么this指向的自然是对象a