Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

155
Visualizações
ES6 Iterar sobre métodos de clase

Dada esta clase; ¿Cómo iteraría sobre los métodos que incluye?

 class Animal { constructor(type){ this.animalType = type; } getAnimalType(){ console.log('this.animalType: ', this.animalType ); } } let cat = window.cat = new Animal('cat')

Lo que he intentado es lo siguiente sin éxito:

 for (var each in Object.getPrototypeOf(cat) ){ console.log(each); }
over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Puede usar Object.getOwnPropertyNames en el prototipo:

 Object.getOwnPropertyNames( Animal.prototype ) // [ 'constructor', 'getAnimalType' ]
over 4 years ago · Santiago Trujillo Relatório

0

Lo sé, lo sé, pero bueno...

 const isGetter = ( x, name ) => ( Object.getOwnPropertyDescriptor( x, name ) || {} ).get const isFunction = ( x, name ) => typeof x[ name ] === "function"; const deepFunctions = x => x && x !== Object.prototype && Object.getOwnPropertyNames( x ) .filter( name => isGetter( x, name ) || isFunction( x, name ) ) .concat( deepFunctions( Object.getPrototypeOf( x ) ) || [] ); const distinctDeepFunctions = x => Array.from( new Set( deepFunctions( x ) ) ); const userFunctions = x => distinctDeepFunctions( x ).filter( name => name !== "constructor" && !~name.indexOf( "__" ) ); // example usage class YourObject { hello() { return "uk"; } goodbye() { return "eu"; } } class MyObject extends YourObject { hello() { return "ie"; } get when() { return "soon"; } } const obj = new MyObject(); console.log( userFunctions( obj ) ); // [ "hello", "when", "goodbye" ]

over 4 years ago · Santiago Trujillo Relatório

0

Esto es un poco más elaborado pero obtiene métodos de toda la cadena de prototipos.

 function getAllMethodNames (obj, depth = Infinity) { const methods = new Set() while (depth-- && obj) { for (const key of Reflect.ownKeys(obj)) { methods.add(key) } obj = Reflect.getPrototypeOf(obj) } return [...methods] }
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda