javascript - 不要使用 util.inspect 记录符号
问题描述
我有这个对象,上面有一些符号属性:
{
foo: 'bar',
[Symbol(raw.json.bytes)]: 13,
[Symbol(raw.json.str)]: '{"foo":"bar"}'
}
现在,我自己添加了这些符号属性,所以也许我可以使用 Object.defineProperty 更改添加它们的方式。是否有某种方法可以防止记录符号:
- 使用 util.inspect(v, opts) 的选项
- 或者通过使用 Object.defineProperty?
无论哪种方式,我都在使用 util.inspect() 对对象进行字符串化,我的偏好是向它传递一个选项,以不记录不可枚举的属性或不记录。
解决方案
您可以使用showHidden
选项false
(默认)和不可枚举符号的组合来做到这一点,但这可能会产生副作用1。
为此,请定义如下符号:
Object.defineProperty(obj,symbol,{
enumerable: false, //That matters
configurable: true, //Or false
writable: true, //Or false
value: someValue
})
如上定义的属性(不一定是符号),如果选项为 false ,则不会包含在util.inspect
调用中。showHidden
推荐阅读
- tinymce-3 - 如何在 Tinymce3.0 中设置默认字体和字体大小?
- java - 在 Android Studio 中获取按钮以执行操作
- android - 更改 gaddle 的 appId 时奇怪的 Android 颜色行为
- elasticsearch - 如何在 Elasticsearch 中将 id 设置为文档的唯一值
- macos - 使用 com.apple.developer.driverkit.userclient-access 配置配置文件应该如何?
- javascript - 无法连接到 mongdb nodejs
- javascript - 根据另一个选择值更改选择内容
- apache-kafka - 无需 zookeeper 即可工作的 Kafka docker 映像
- jmeter - Jmeter - 非 HTTP 响应代码:在尝试为 1 个用户录制脚本时观察到 org.apache.http.conn.HttpHostConnectException
- sql - SQL Server - 将所有子父关系连接成一个字符串