2017-08-30 11 views

Odpowiedz

3

Problem polega na tym, że wywołanie gettera może powodować skutki uboczne, np.

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; 
    } 
} 

Każdy użytkownik może zmienić stan aplikacji lub ją złamać podczas próby debugowania. Właśnie dlatego DevTools prosi o ręczne wywołanie tych sprzężeń. Nawet jeśli twój getter zwróci wartość statyczną, DevTools nie ma takiej możliwości.

Jeśli naprawdę chcesz, aby wywołać wszystkie pobierające i mieć szybki przegląd wartości, można stworzyć sobie pomocnika:

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

Spowoduje to dodanie nowego getter, który wykonuje wszystkie inne pobierające dla Ciebie i podać swoje wartości za pomocą jednego kliknięcia (zamiast n kliknięć).

+0

nie jestem w stanie dodać getter do tych obiektów choć. Nie są to klasy/przedmioty, które sam stworzyłem. – ddschmitz

0

Można spróbować umieścić go przez JSON stringify który wezwie wszystkie pobierające:

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

Powiązane problemy