如何使LightTable内联显示JavaScript对象详细信息?
目前,我正在评估LightTable中的ClojureScript表单,并使用脚本标记连接到外部浏览器。在评估表单时,表单返回[object Object]
作为评估结果,我想看到此对象的内容。
答案 0 :(得分:1)
[object Object]是Javascript对象的默认字符串表示形式。不幸的是,JS对象比Clojure(脚本)数据结构更不透明。有几种方法可以改善这种情况,但没有一种方法是完美的。
您可以覆盖对象或其原型的toString()方法并返回自定义格式。当LightTable尝试打印对象时,这实际上会更改格式。您可以使用标准JS互操作来更改方法,例如:
(set! (.-toString o) (fn [obj] "some text"))
有多种方法可以检查可用于获取所需格式的对象。请参阅此问题获取灵感:How to inspect Javascript Objects
另一种方法是,如果您正在为浏览器开发,只需将对象记录到控制台即可。根据您使用的浏览器,您可能会获得比标准描述更详细的描述。
(defn log [o]
(.log js/console o))
希望这有帮助!