что эквивалентно #js {} без использования макроса читателя - PullRequest
0 голосов
/ 24 ноября 2018

Я ищу способ получить #js {}.Однако (js-obj) и (js* "{}") оба возвращают nil и (clj->js {}) кажется немного расточительным.

Есть ли альтернатива?

Ответы [ 2 ]

0 голосов
/ 24 ноября 2018

(js-obj) фактически производит объект, но если вы оцените его непосредственно, скажем, в Lumo или Planck на REPL, вы получите nil благодаря тому, что {} оценивается.

Если вы используете его в контексте, где вызов имеет немного больше возможностей, все работает.Например, попробуйте (let [x (js-obj)] x), и вы увидите #js {}.

Уловили основную проблему: https://dev.clojure.org/jira/browse/CLJS-2991

0 голосов
/ 24 ноября 2018
(ns foo (:require [goog.object :as gobject]))
(gobject/create)
...