Я использую ClojureScript для получения уровня заряда батареи с:Google закрытоугольной компилятор расширенных оптимизаций munging navigator.battery.level вызывает TypeError
navigator.battery.level
Который прекрасно работает при использовании простых и пробельные оптимизаций. Но при использовании расширенного режима оптимизации выше преобразуемый:
navigator.hd.rd
И вызывает TypeError, как navigator.hd не определено.
Как это исправить?
EDIT:
Фиксированные благодаря ниже ответ. Хотя в ClosureScript я должен был бы сделать некоторый неприятный, вложенный, agets ... Так что я пришел с этим:
(defn jget [jobject & props]
(loop [obj jobject
p (map name props)]
(if (not (empty? p))
(let [prop (aget obj (first p))]
(recur prop (rest p)))
obj)))
тогда назвал это так:
(jget js/navigator :battery :level)
Если уже есть инструменты из там для этого может кто-нибудь, пожалуйста, дайте мне знать.
Благодаря levland, если я хочу, чтобы автоматизировать поколение Экстерн файлов безопасно сказать, что с учетом строки: «. <1><2><3>», например: «navigator.battery.level» Это имя файла должно = <1>, <1> к <1> , всегда должно быть назначено = {} и <1>. <..>. всегда должен быть назначен = function() {}. –
jdoig
@ jdoig Автоматическое создание внешнего интерфейса не так просто. Вышеприведенный extern не содержит информации типа или вложенных типов. –