# 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); // 追夢人