Widget
私がクラスを書くとしましょう。
function Widget() {}
私のクラスを使用している誰かがWidget
インスタンスを に送信しますconsole.log
。
console.log(new Widget()); // ▶ Widget
そのオブジェクトがコンソールにどのように表示されるかを制御する方法はありますか? 以下がどのように表示されるかに注目してください。
console.log(window.location) // ▶ Location
console.log(document) // ▶ #document
console.log(document.body) // ▶ <body class="ask-page">…</body>
Widget
インスタンスが に送信されたときに、より有用な情報を表示したい場合はどうすればよいconsole.log
ですか? 独自の実装に置き換えることもできると思いconsole.log
ますが、もっとエレガントなものを探しています。console.log
出力を制御できる特定の機能を検索しますか?
更新:何を達成しようとしているのかと尋ねる人もいます。これが簡単な例です。プロパティ アクセサーの作成に使用するUrlBuilder
クラスを JavaScript で作成しました。Object.defineProperty
(これは回避できない制約です。) 問題は、誰かが にUrlBuilder
インスタンスを送信するたびconsole.log
に、URL を出力したいということです。ただし、代わりに が表示されます▶ UrlBuilder
。また、開閉用三角形を展開しても、プロパティ アクセサーが__proto__
プロパティ内にリストされているため、有用なものは何も表示されません。これは空で役に立たないオブジェクトのように見えます。URL を文字列として表示する方が便利です。