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