Em navegadores modernos, você pode usar Object.getOwnPropertyNames
para obter todas as propriedades (enumeráveis e não enumeráveis) em um objeto. Por exemplo:
function Person ( age, name ) {
this.age = age;
this.name = name;
}
Person.prototype.greet = function () {
return "My name is " + this.name;
};
Person.prototype.age = function () {
this.age = this.age + 1;
};
// ["constructor", "greet", "age"]
Object.getOwnPropertyNames( Person.prototype );
Observe que isso só recupera propriedades próprias , portanto, não retornará propriedades encontradas em outro lugar na cadeia de protótipo. Essa, no entanto, não parece ser sua solicitação, portanto, presumirei que essa abordagem seja suficiente.
Se você gostaria de ver apenas propriedades enumeráveis , você pode usar Object.keys
. Isso retornaria a mesma coleção, menos a constructor
propriedade não enumerável .