我正在使用 ClojureScript 来检索电池电量:
navigator.battery.level
使用简单和空白优化时效果很好。但是当使用高级优化模式时,上面会变成:
navigator.hd.rd
并导致 TypeError 因为 navigator.hd 未定义。
我怎样才能解决这个问题?
编辑:
由于下面的答案而修复。虽然在 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)
如果已经有工具可以解决这个问题,请告诉我。