Какой метод 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 функция)
Другие вопросы по тегам