Quali sono i vantaggi dell'incapsulamento di condizionali (nelle funzioni)?

4

Secondo questa guida al codice pulito, dovresti incapsulare condizionali:

function shouldShowSpinner() {
  return fsm.state === 'fetching' && isEmpty(listNode);
}

if (shouldShowSpinner()) {
  // ...
}

Perché non scrivere semplicemente:

const shouldShowSpinner = fsm.state === 'fetching' && isEmpty(listNode)

if (shouldShowSpinner) {
  // ...
}
    
posta alex 05.01.2017 - 03:12
fonte

1 risposta

10

Perché

const shouldShowSpinner = fsm.state === 'fetching' && isEmpty(listNode)

viene valutato solo una volta. L'operatore di assegnazione = memorizza il risultato di una singola valutazione dell'espressione booleana.

Questo va bene se lo stato dell'espressione booleana non cambia mai durante l'esecuzione del codice nello scope pertinente, ma produrrà risultati errati se cambia, nel qual caso otterrai il risultato ora impreciso del calcolo originale.

    
risposta data 05.01.2017 - 03:26
fonte

Leggi altre domande sui tag