说我写一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 显示为字符串会更有用。