2015-09-30 15 views
5

In JavaScript sehen wir oft Code wie dem folgenden, um einen Standardparameter festzulegen, wenn Falschwerte nicht ignoriert werden sollen.JavaScript-Standardparameter mit Extra-Zuweisung

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

Gelegentlich aber, wenn der Code lesen, werde ich auf die folgende Variante kommen:

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

Kann jemand den Anwendungsfall für das mir das erklären?

Antwort

4

In diesem Code:

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

zwei separate Zuweisungen vorgenommen: einen zum param lokalen Variable (das eigentliche Argument an die Funktion) und einer auf eine Eigenschaft von this, was immer das sein geschieht. Diese zwei verschiedenen Zuweisungsziele sind nicht gleich. (. Sie werden den gleichen Wert natürlich erhalten, aber sie sind zwei getrennte Orte Werte setzen)

Nach meiner Erfahrung ist es weitaus häufiger einen einfachen Standard für den Parameter festgelegt, um zu sehen selbst:

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

Es ist jedoch nichts falsch, wenn eine Objekteigenschaft zugewiesen wird, wenn dies sinnvoll ist.