Какой метод ClojureScript является более идиоматическим для печати на консоли?
У меня есть два варианта печати на консоль в ClojureScript. Что является более идиоматическим?
(.log js/console "Hello World!")
или же
(enable-console-print!)
(println "Hello world!")
Мой вопрос: какой метод ClojureScript является более идиоматическим для печати на консоли?
1 ответ
Решение
(enable-console-print!)
просто устанавливает *print-fn*
в console.log
, После звонка (enable-console-print!)
и то и другое (println ...)
а также (.log js/console ...)
функционально эквивалентны.
Однако использование println
имеет 3 преимущества:
- Нет явного взаимодействия с JavaScript, которое делает код чище
- У вас есть возможность изменить функциональность регистрации в одном месте - просто установите
*print-fn*
к чему-то другому (например, использоватьalert
в браузере, запись логов в БД в Node.JS и т. д.) - В случае общего кода Clojure/ClojureScript это единственный вариант (вы не можете использовать
.log
функция)