vscode mostrando diferentes métodos, propiedades y eventos. 
Hola a todos,
Puedo ver que en vscode es posible ver todas las diferentes propiedades, métodos y eventos de un objeto determinado. ¿Cómo puedo acceder a todos estos y almacenarlos en una matriz, sin tener que codificarlos?
Object.keys(obj) le dará una matriz de propiedades enumerables en el objeto.
Object.getOwnPropertyDescriptors(obj) le dará una matriz de descriptores de propiedad "propios" para el objeto e incluirá propiedades no enumerables.
Object.getOwnPropertyNames(obj) le dará una matriz de nombres de propiedad "propios" para el objeto e incluirá propiedades no enumerables.
Si también desea enumerar qué métodos podrían estar en el prototipo, entonces tendría que usar uno de estos métodos anteriores en el prototipo que puede obtener con Object.getPrototypeOf(obj) .
Y, si este objeto es una subclase y desea incluir métodos en cualquier clase base, debe seguir la cadena de prototipos y enumerar cada prototipo en esa cadena. Siga la cadena llamando a Object.getPrototypeOf(obj) y luego vuelva a llamarlo en ese prototipo y así sucesivamente hasta que obtenga null . Así es como se "camina" la cadena de prototipos.
Puede ver el documento de MDN para todos estos para obtener más información.
Aquí hay un ejemplo:
class A { constructor() { this.propA = "A"; Object.defineProperty(this, "propA2", { enumerable: false }); } showMe() { console.log("I'm from class A"); } } class B extends A { constructor() { super(); this.propB = "B"; Object.defineProperty(this, "propB2", { enumerable: false }); } showMeToo() { console.log("I'm from class B"); } } let x = new B(); // [ 'propA', 'propB' ] console.log(Object.keys(x)); // [ 'propA', 'propA2', 'propB', 'propB2' ] console.log(Object.getOwnPropertyNames(x)); // [ 'constructor', 'showMeToo' ] let protoB = Object.getPrototypeOf(x); console.log(Object.getOwnPropertyNames(protoB)); // [ 'constructor', 'showMe' ] let protoA = Object.getPrototypeOf(protoB); console.log(Object.getOwnPropertyNames(protoA)); // shows properties on generic Object prototype let p1 = Object.getPrototypeOf(protoA); console.log(Object.getOwnPropertyNames(p1)); // shows null because it's the end of the prototype chain let p2 = Object.getPrototypeOf(p1); console.log(p2);Puede usar Object.keys(yourObj)
Esto devuelve todas las propiedades de un objeto dado.