1

LightTable に JavaScript オブジェクトの詳細をインラインで表示させる方法は?

現在、スクリプト タグを使用して外部ブラウザに接続し、LightTable 内の ClojureScript フォームを評価しています。フォームを評価するとフォームが[object Object]評価結果として返ってくるので、このオブジェクトの中身を見たい。

4

1 に答える 1

1

[object Object] は、Javascript オブジェクトのデフォルトの文字列表現です。残念ながら、JS オブジェクトは Clojure(スクリプト) データ構造よりもはるかに不透明です。状況を改善する方法はいくつかありますが、どれも完璧ではありません。

オブジェクトまたはそのプロトタイプの toString() メソッドを上書きして、カスタム形式を返すことができます。これにより、LightTable がオブジェクトを印刷しようとすると、実際にフォーマットが変更されます。標準の JS 相互運用機能を使用してメソッドを変更します。次に例を示します。

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

必要なフォーマットを取得するために使用できるオブジェクトを検査する方法はたくさんあります。インスピレーションについては、この質問を参照してください: Javascript オブジェクトを検査する方法

もう 1 つの方法は、ブラウザー用に開発している場合は、単にオブジェクトをコンソールに記録することです。使用しているブラウザによっては、標準の説明よりも詳細な説明が得られる可能性があります。

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

お役に立てれば!

于 2014-07-04T22:12:39.490 に答える