Hola stackoverflow, estaba trabajando en un proyecto que estaba destinado a tomar los métodos y propiedades de diferentes API y luego crear un sistema que permitiera encadenarlos y usarlos con menos conocimiento técnico.
Uno de los requisitos básicos de este proyecto es poder analizar un objeto en sus propiedades y funciones. Después de probar un par de enfoques diferentes sin suerte, noté (ver imagen) que vscode podía decir qué partes de un objeto son métodos y cuáles son propiedades, lo que me dejó preguntándome cómo podría utilizar esta funcionalidad, ya que hay un función que devolvería todas las propiedades de un objeto?
Sé que Object.keys() devuelve el valor de cadena de todas las claves de un objeto, lo cual es un buen comienzo, pero también necesito los objetos reales que contienen estas claves.
También me topé con Object.getPrototypeOf(obj), que devuelve el prototipo de una función y, al menos que yo sepa, el prototipo contiene todos los métodos y, como tal, deberíamos poder revisar todos los prototipos anidados. dentro del primer prototipo para encontrar todos los métodos que podemos usar. (al menos esto es lo que intentaré a continuación) Una de las preocupaciones que me imagino es que algunos métodos también se mantienen en claves, y estos no se captarían de esta manera, me imagino.
Entonces, mi pregunta general es si hay una forma inteligente de acceder a estas propiedades y métodos o simplemente ordenarlos directamente.
Puede usar Object.entries() y obtener tanto la clave como el valor // -> [[key, value], [key, value]]
Probar:
let list = Object.entries(window).map(([key, value]) => ({[key]: typeof value})) console.log(list)