# this的指向在函数建立的时候肯定不了。只有在执行的时候,才能够肯定。数组
## 1 、 这里的this指向window window.fn(); 因此this.user是undefinedapp
function fn (){ var user='追梦人'; console.log(this.user); // undefined console.log(this); // window } fn();
## 二、谁调用,指向谁
函数
1 var o ={ 2 user:'追梦人', 3 fn:function(){ 4 console.log(this.user); // 谁调用,指向谁 5 } 6 } 7 o.fn();
## 三、this
1 var o ={ 2 user:'追梦人', 3 fn:function(){ 4 console.log(this.user); // 为何不是undefiend,是window在调用 5 } 6 } 7 window.o.fn(); // 谁调用,指向谁
## 四、spa
1 var o={ 2 a:10, 3 b:{ 4 a:12, 5 fn:function(){ 6 console.log(this.a); // 12 7 }, 8 }, 9 } 10 o.b.fn();
## 五、 注释掉a:12 this.a为 undefinedcode
1 var o={ 2 a:10, 3 b:{ 4 //a:12, 5 fn:function(){ 6 console.log(this.a); 7 }, 8 }, 9 } 10 o.b.fn();
## 六、this指向的永远都是最后调用它的对象(执行的时候,谁调用)对象
1 var o={ 2 a:10, 3 b:{ 4 a:12, 5 fn:function(){ 6 console.log(this.a); // undefined 7 console.log(this); // window 8 }, 9 }, 10 } 11 var fn=o.b.fn; // 注意:这里并无执行 12 fn(); // 执行fn
## 七、构造函数中的thisblog
1 function Fn(){ 2 this.user="追梦人"; 3 } 4 var fn = new Fn(); 5 console.log(fn.user);
## 八、构造函数 return 对象 的时候io
1 function Fn(){ 2 this.user="追梦人"; 3 return {} // 返回 一个对象 4 } 5 var fn = new Fn(); 6 console.log(fn.user); // undefined
## 九、return 简单类型的数据console
1 function Fn(){ 2 this.user="追梦人"; 3 return 1; // 返回的是一个简单类型 4 } 5 var fn = new Fn(); 6 console.log(fn.user); // 追梦人
## 十、return null的时候
1 function Fn(){ 2 this.user="追梦人"; 3 return null; // 返回的是一个简单类型 4 } 5 var fn = new Fn(); 6 console.log(fn.user); // 追梦人