2016-08-03 51 views
0

habe ich einen Kaffee Skript mit dem folgendenProblem haben, in Kaffee-Skript für null Zustand überprüft

@update_states = (countryElt, stateElt, callbackFn) -> 
    … 
     if callbackFn != null 
     callbackFn() 

Das Problem ist, auch wenn es keine „callbackFn“ Argument an die Funktion übergeben, die „if“ -Block wird ausgeführt. Was ist der richtige Weg zu überprüfen, ob das Argument nicht null ist (d. H. Ist eine Funktion an die Funktion übergeben)?

+0

ziemlicher Sicherheit eine Vertiefung Fehler. Versuchen Sie es in eine Zeile zu setzen 'if cb then cb()', oder für eine robustere Version 'wenn typeof cb 'function' ist, dann cb()' und sehen, ob das behebt. Haben Sie sich auch das Ausgabe-JavaScript angesehen? –

+0

Ich weiß es nicht, aber das hat es getan – Dave

Antwort

1

Der Code if callbackFn != null wird in if(callbackFn !== null) konvertiert. Wenn Sie das callbackFn Argument nicht übergeben, callbackFn = undefined. undefined !== null.

richtige Weg, dies in Coffeescript zu tun ist:

if callbackFn? then callbackFn() 

Lesen Sie mehr über existential operators