2015-09-30 11 views
5

In javascript, spesso vediamo un codice simile al seguente per impostare un parametro predefinito quando non ci interessa ignorare i valori di falsi.Parametro predefinito di Javascript con assegnazione aggiuntiva

function SomeObject (param) { 
    this.param = param || {}; 
} 

Di tanto in tanto, però, durante la lettura del codice, verrò in tutta la seguente variazione:

function SomeObject (param) { 
    this.param = param = param || {}; 
} 

qualcuno può spiegare a me il caso d'uso per questo?

risposta

4

In questo codice:

function SomeObject (param) { 
    this.param = param = param || {}; 
} 

due assegnazioni separate sono fatti: uno alla variabile param locale (il parametro attuale alla funzione) e uno a una proprietà di this, qualunque esso sembra essere. Questi due diversi obiettivi di assegnazione sono non uguali. (. Si otterrà lo stesso valore, naturalmente, ma sono due luoghi separati per mettere valori)

Nella mia esperienza, è molto più comune vedere un semplice difetto stabilito per il parametro stesso:

function whatever(x) { 
    x = x || {}; 

Non c'è niente di sbagliato, tuttavia, con l'assegnazione a una proprietà dell'oggetto quando ciò ha senso.

Problemi correlati