Em JavaScript, temos algumas maneiras de obter as propriedades de um objeto, dependendo do que desejamos obter.
1) Object.keys()
, que retorna todas as propriedades enumeráveis próprias de um objeto, um método ECMA5.
2) um for...in
loop, que retorna todas as propriedades enumeráveis de um objeto, independentemente de serem propriedades próprias ou herdadas da cadeia de protótipos.
3) Object.getOwnPropertyNames(obj)
que retorna todas as propriedades próprias de um objeto, enumeráveis ou não.
Também temos métodos que hasOwnProperty(prop)
nos permitem verificar se uma propriedade é herdada ou realmente pertence a esse objeto e propertyIsEnumerable(prop)
que, como o nome sugere, nos permitem verificar se uma propriedade é enumerável.
Com todas essas opções, não há como obter uma propriedade não enumerável e não própria de um objeto, que é o que desejo fazer. Há alguma maneira de fazer isso? Em outras palavras, posso de alguma forma obter uma lista das propriedades não enumeráveis herdadas?
Obrigado.