1. 程式人生 > >【JavaScript】 當this遇上return

【JavaScript】 當this遇上return

參考地址

當this碰到return時,會出現一些小問題。

function fn()  
{  
    this.user = '啊啊';  
    return {};  
}
var a = new fn;  
console.log(a.user); //undefined
function fn()  
{  
    this.user = '啊啊';  
    return function(){};
}
var a = new fn;  
console.log(a.user); //undefined
function fn()  
{  
    this.user = '啊啊'
; return 1; } var a = new fn; console.log(a.user); //啊啊
function fn()  
{  
    this.user = '啊啊';  
    return undefined;
}
var a = new fn;  
console.log(a.user); //啊啊

為什麼呢?
如果返回值是一個物件,那麼 this 指向的就是那個返回的物件,如果返回值不是一個物件那麼 this 還是指向函式的例項。

null 雖然也是物件,但是在下面程式碼中,this指向的依舊是那個函式例項。因為null比較特殊。

function
fn() {
this.user = '追夢子'; return null; } var a = new fn; console.log(a.user); //追夢子