使用javascript,是否可以console.log
或列出与给定类型的对象关联的.prototype
属性?
我正在使用 firebase cloud-firestore ,并希望了解原型中存在的用于调用数据库的内容。
例如,数据库调用返回类型为QuerySnapshot { ... }
的对象。我想看看QuerySnapshot.prototype
上存在什么。
我可以使用.map
映射返回的值,但是如果我控制台注销该对象,则它不是数组,因此大概是继承自原型的自定义.map吗?
答案 0 :(得分:5)
是的,您可以使用Object.getPrototypeOf
获取对象的原型,Object.getOwnPropertyNames
获取具有字符串名称的属性,Object.getOwnPropertySymbols
获取具有符号名称的属性。您可能想要重复此过程(转到原型的原型,依此类推),以获取每个级别的属性。
getOwnPropertyXYZ
的优点在于,它包含不可枚举的属性,而for-in
和Object.keys
仅返回可枚举的属性。 (它们也不包含以符号命名的属性。)
或者,您可以console.log
对象,并使用devtools中浏览器的交互式对象资源管理器来浏览其属性。