【发布时间】:2014-05-08 06:55:11
【问题描述】:
如何让 LightTable 内联显示 JavaScript 对象的详细信息?
目前,我正在评估 LightTable 中的 ClojureScript 表单,并使用脚本标签连接到外部浏览器。评估表单时,表单返回[object Object]作为评估结果,我想看看这个对象的内容。
【问题讨论】:
标签: javascript clojure clojurescript lighttable
如何让 LightTable 内联显示 JavaScript 对象的详细信息?
目前,我正在评估 LightTable 中的 ClojureScript 表单,并使用脚本标签连接到外部浏览器。评估表单时,表单返回[object Object]作为评估结果,我想看看这个对象的内容。
【问题讨论】:
标签: javascript clojure clojurescript lighttable
[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))
希望这会有所帮助!
【讨论】: