2016-05-07 32 views
0

Grundsätzlich wird das folgende Muster abgelehnt und als Fehler angesehen.Wie kann ich Titan bekommen, um einen Standard-Parameterwert für eine JavaScript-Funktion zu setzen

function fooBar(flag = true) { 
    // flag will be set to true is someone called fooBar() without any parameters 
} 

EDIT: Ich habe den folgenden Code-Schnipsel hinzugefügt, um die eigentliche Aktion zu zeigen. Dies ist eleganter, einfacher zu lesen und zu pflegen und schneller auszuführen (keine Unterstreichungsanforderung) ... und es wird von JavaScript unterstützt.

function greet(param = "World") { 
 
\t alert("Hello " + param + "!"); 
 
} 
 

 
greet(); // Will alert "Hello World" 
 
greet("Thomas"); // Will alert "Hello Thomas"

Dank

Antwort

1

Es ist mehr eine Javascript Frage als ein ein Titan. Sie können die isUndefined Funktion von Unterstreichungs lib verwenden (mit der Legierung):

function fooBar(flag) { 
    // flag will be set to true is someone called fooBar() without any parameters 
    if(_.isUndefined(flag)) 
    flag = true; 

} 

Vergessen Sie nicht, dass Titan Mobil verwenden ECMAScript 5 und Standardwert Argument für Funktion wurde mit ECMAScript 6 eingeführt: http://ariya.ofilabs.com/2013/02/es6-and-default-argument.html.

+0

Danke für Ihre Antwort, aber ich stimme nicht zu. JavaScript unterstützt die Standardwerte für Funktionsparameter. Ich habe die Frage bearbeitet, um ein ausführbares Code-Snippet hinzuzufügen, um Ihnen zu zeigen, was ich wirklich meinte. – asiby

+0

Ok, gut zu wissen. Also, was ist der Fehler? Können Sie das Konsolenprotokoll veröffentlichen? –

+0

Der anfängliche Fehler ist: Unerwartetes Token "=". Und je nachdem, wo ich dieses Muster verwende, kommt es zu einer Kaskade von Fehlern, die keinen Sinn ergeben. Und wenn ich versuche zu kompilieren, bekomme ich ein Pop-up-Fenster mit der Meldung: In den erforderlichen Projekten sind Fehler vorhanden ... Weiter mit dem Start? ... mit einer Checkbox, die vorschlägt, immer ohne zu fragen zu starten. – asiby