【JavaScript】 當this遇上return
阿新 • • 發佈:2019-01-25
當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); //追夢子