2017-08-30 60 views

回答

3

問題是,調用吸氣劑會產生副作用,例如,

class Dog { 
    get paws() { 
    console.log('paws!'); //side effect 
    this.paws++; // side effect 
    if(this.paws > 4) { 
    throw Error('oh no'); // side effect 
    } 

    return this.paws; 
    } 
} 

每個getter都可以在您嘗試調試時改變應用程序的狀態或將其中斷。這就是DevTools要求您手動調用這些獲取器的原因。即使你的getter返回一個靜態值,DevTools也無法知道這一點。

如果你真的想調用所有getter和具有價值的簡要概述,你可以自己創建一個幫手:

class Dog { 
get _debug() { 
    return { 
    paws: this.paws, 
    //... 
    }; 
} 
} 

這將添加一個新的getter將調用其他所有getter方法,爲您和只需單擊一次即可爲您提供他們的價值(而不是n點擊次數)。

+0

我不能給一個getter添加到這些對象雖然。它們不是我自己創建的類/對象。 – ddschmitz

0

你可以嘗試把它通過JSON字符串化,它將調用所有的干將:

console.log(JSON.parse(JSON.stringify(myObj)));

相關問題