Jak mogę uzyskać przestrzeń nazw Clojurescript, z której pochodzę, w programie programu clojurescript? Chcę to zrobić, aby zapewnić pewne informacje debugowania (musi tylko działać w trybie deweloperskim).Jak mogę uzyskać przestrzeń nazw Clojurescript, z której pochodzę, w programie programu clojurescript?
Odpowiedz
Przestrzenie nazw nie są pierwszorzędne w ClojureScript, ponieważ są w Clojure. Nie ma absolutnie żadnego sposobu na uzyskanie przestrzeni nazw w czasie wykonywania. Możliwe jest uzyskanie tych informacji w czasie wyodrębniania makro, jeśli nie boisz się dostępu do niektórych wewnętrznych komponentów kompilatora ClojureScript. Prawdopodobnie powinien to być interfejs API - ale jeszcze go nie ma.
można uzyskać nazwę bieżącego nazw z tej sztuczki, która wykorzystuje ::
stworzenie przestrzeni nazw symbol dla Ciebie w bieżącym obszarze nazw:
(namespace ::x)
Prawdopodobnie nie chcesz używać tej wartości za nic, ponieważ jeśli kod zostanie skompilowany, wewnętrzna reprezentacja ulegnie zmianie. Jeśli chcesz żyć niebezpiecznie, a następnie w przeglądarce można wtedy uzyskać dostęp do obiektu js, która posiada nazw takiego:
(reduce (fn [ns n] (aget ns n))
js/window
(clojure.string/split (namespace ::x) #"\."))
możesz spróbować tej
(apply str (drop-last 2 (str `_)))
Podczas makro ekspansji można uzyskać dostęp &env
i pobierać informacje namespace z klucza :ns
jak ten:
(:ns &env)
(:name (:ns &env))
Zadziała tylko na makro-ex pansion/czas kompilacji, a nie w czasie wykonywania.
- 1. Zwiększenie wydajności programu ClojureScript
- 2. Jak uzyskać parametry zapytania w clojurescript?
- 3. Jak uzyskać znacznik czasu w ClojureScript?
- 4. call ClojureScript z Javascript
- 5. Jak debugować ClojureScript
- 6. Document.write w Clojurescript?
- 7. Jak utworzyć json w clojurescript?
- 8. Jak uzyskać właściwości z myślnikami w ich nazwach w clojurescript?
- 9. Dlaczego makr clojurescript nie można zapisać w clojurescript?
- 10. punkty przerwania clojurescript
- 11. Śledzenie myszy w clojurescript/reagent/reagi?
- 12. Biblioteka czasowa ClojureScript
- 13. Jak skompilować formularze Clojurescript z poziomu Clojure?
- 14. Obiekty ClojureScript i HTML
- 15. ClojureScript na node.js, kod
- 16. ClojureScript bez Java
- 17. Clojurescript: dwie kropki w ekspresji
- 18. Idiomatycznie dostęp do obiektów json z clojurescript
- 19. Kompilowanie zewnętrznych plików JS z Cljsbuild w ClojureScript
- 20. Jak zatrzymać blok GO w ClojureScript/core.async?
- 21. Jak tworzyć elementy przycisków w ClojureScript?
- 22. Jak utworzyć nowy obraz w ClojureScript
- 23. Jak korzystać clojure.string/join w clojurescript
- 24. Jak ustawić atrybut elementu DOM w Clojurescript?
- 25. Czy mogę używać dowolnych modułów węzłów z clojurescript?
- 26. zawijanie knockout.js przy użyciu clojurescript
- 27. Różnica między clojure a clojurescript?
- 28. Kliknij prawym przyciskiem myszy w ClojureScript?
- 29. Jak zdefiniować funkcję clojurescript w globalnej przestrzeni nazw javascript podczas kompilacji?
- 30. Uzyskiwanie dostępu do "tego" w Clojurescript
Dzięki! Bałem się, że tak będzie. – Zubair