Sto provando a ripetere tutti i metodi in uno pseudoclass JavaScript e posso facilmente dire se qualcosa è un metodo o meno con (obj.member instanceof Function), tuttavia sto cercando di includere metodi che potrebbero essere nascosti da un ... in loop tramite defineProperty con un flag enumerable impostato su false - come faccio a ripetere tutti i membri di una pseudoclass, indipendentemente dal valore enumerabile?Come si esegue l'iterazione su tutti i metodi in una pseudoclass JavaScript, indipendentemente dal fatto che siano contrassegnati o meno enumerabili?
6
A
risposta
7
È sempre possibile utilizzare Object.getOwnPropertyNames
, che includerà anche proprietà non enumerabili. Tuttavia, questo non includerà le proprietà dei prototipi, quindi se stai chiedendo di "istanze di pseudoclass" potresti aver bisogno di loop the prototype chain con Object.getPrototypeOf
.
Grazie, abbi un po 'di karma. – CoryG
Correzione, in 8 minuti puoi avere qualche karma - dannato sito pensa che io sia un bot o qualcosa del genere. – CoryG
Cosa succede se, in ispezione, posso vedere una proprietà ma non compare sotto 'getOwnPropertyNames' né' keys'? Esempio: 'typeof obj ['stuff'] == 'function'; Object.getOwnPropertyNames (this) .indexOf ('stuff') == -1'. Questo è successo in una classe ES6, babelificato. – igorsantos07