Wie kann ich simulieren Makros in JavaScript?
Ich weiß, dass JavaScript nicht unterstützt Makros (Lisp-Stil), aber ich Frage mich, ob jemand hatte eine Lösung, vielleicht simulieren Makros? Ich habe es Gegoogelt, und eine der Lösungen vorgeschlagen, die Verwendung von eval(), aber wie gesagt er wäre ziemlich teuer.
Sie nicht wirklich sehr schick. Ich will nur einfache Sachen mit Ihnen. Und es sollte nicht das Debuggen deutlich schwerer 🙂
InformationsquelleAutor der Frage Anders Rune Jensen | 2008-10-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnten Sie parenscript. , Geben Sie Makros für Javascript.
InformationsquelleAutor der Antwort Luís Oliveira
Einer Bibliothek, die von Mozilla (genannt SweetJS) ist entworfen, um zu simulieren Makros in JavaScript. Zum Beispiel, können Sie SweetJS zu ersetzen, die
function
keyword mitdef
.InformationsquelleAutor der Antwort Anderson Green
Kann man nun auch ClojureScript zu kompilieren, clojure, javascript und Holen Sie Makros, die Art und Weise. Hinweis ClojureScript Google-Verschluss.
InformationsquelleAutor der Antwort Anders Rune Jensen
Ich geschrieben habe, einen gameboy-emulator in javascript und ich simulieren Makros für die cpu-emulation auf diese Weise:
makro-code (die Funktion gibt einen string mit dem makro-code):
Mit dem "makro", also der code wird generiert "on the fly" und wir müssen das nicht machen, Funktionsaufrufe oder schreiben viel code wiederholt sich für jede istruction...
Nun können wir ausführen, emuliert code wie folgt:
Hoffe, es hilft...
InformationsquelleAutor der Antwort
LispyScript ist die neueste Sprache, die zu Javascript kompiliert wird, unterstützt Makros. Es hat eine Lisp-ähnlichen Struktur syntax, sondern pflegt auch den gleichen Javascript-Semantik.
Disclaimer: ich bin der Autor von LispyScript.
InformationsquelleAutor der Antwort Santosh
InformationsquelleAutor der Antwort Volodymyr M. Lisivka
Javascript interpretiert wird. Eval ist nicht mehr teuer, alles andere in Javascript.
InformationsquelleAutor der Antwort James Curran