Bitte sagen Sie mir, wie man Javascript unten in Coffeescript schreibt.
setTimeout(function(){
something(param);
}, 1000);
javascript
settimeout
coffeescript
Tomodian
quelle
quelle
Antworten:
Ich denke, es ist eine nützliche Konvention für Rückrufe als letztes Argument für eine Funktion. Dies ist beispielsweise normalerweise bei der Node.js-API der Fall. In diesem Sinne:
Zugegeben, dies erhöht den Overhead eines zusätzlichen Funktionsaufrufs für jeden von
setTimeout
Ihnen; Bei den heutigen JS-Interpreten ist der Leistungsnachteil jedoch unbedeutend, es sei denn, Sie tun dies tausende Male pro Sekunde. (Und was machst du überhaupt, wenn du Tausende von Zeitüberschreitungen pro Sekunde einstellst?)Ein einfacherer Ansatz besteht natürlich darin, einfach Ihren Rückruf zu benennen, der ohnehin zu besser lesbarem Code führt (Jashkenas ist ein großer Fan dieser Redewendung):
quelle
Die Klammern sind optional, aber das Beginnen der Zeile mit einem Komma schien mir chaotisch.
quelle
setTimeout
und dem Eröffnungsparen wichtig ist. Das Leerzeichen dort bedeutet, dass die Klammern den Abschluss als ersten Parameter für setTimeout umgeben. Wenn es direkt nach dem t wäre, würde Coffescript erwarten, dass die Klammern beide Parameter einschließen.quelle
something param
es sich in derselben Zeile befindet wiesetTimeout
, wird es anders analysiert.Dies führt zu einer ungefähr gleichwertigen Übersetzung (danke @Joel Mueller):
Beachten Sie, dass dies keine exakte Übersetzung ist, da die anonyme Funktion das Ergebnis des Aufrufs
something(param)
anstelle von undefiniert zurückgibt , wie in Ihrem Snippet.quelle
setTimeout (() -> something param), 1000
Ich finde das die beste Methode, um dasselbe zu tun,
quelle
andere Option:
quelle