1

如何使 LightTable 内联显示 JavaScript 对象详细信息?

目前,我正在评估 LightTable 中的 ClojureScript 表单,并使用脚本标签连接到外部浏览器。评估表单时,表单[object Object]作为评估结果返回,我想查看这个对象的内容。

4

1 回答 1

1

[object Object] 是 Javascript 对象的默认字符串表示。不幸的是,JS 对象比 Clojure(script) 数据结构更不透明。有几种方法可以改善这种情况,但没有一种方法是完美的。

您可以覆盖对象或其原​​型的 toString() 方法并返回自定义格式。当 LightTable 尝试打印对象时,这实际上会改变格式。您使用标准 JS 互操作更改方法,例如:

(set! (.-toString o) (fn [obj] "some text"))

有各种方法可以检查对象,您可以使用这些方法来获得所需的格式。请参阅此问题以获取灵感:如何检查 Javascript 对象

如果您正在为浏览器开发,另一种方法是简单地将对象记录到控制台。根据您使用的浏览器,您可能会得到比标准描述更详细的描述。

(defn log [o]
    (.log js/console o))

希望这可以帮助!

于 2014-07-04T22:12:39.490 回答