Dans les navigateurs modernes, vous pouvez utiliser Object.getOwnPropertyNames
pour obtenir toutes les propriétés (énumérables et non énumérables) sur un objet. Par exemple:
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 );
Notez que cela ne récupère que les propriétés propres , donc il ne retournera pas les propriétés trouvées ailleurs sur la chaîne de prototypes. Cependant, cela ne semble pas être votre demande, je suppose donc que cette approche est suffisante.
Si vous souhaitez uniquement voir les propriétés énumérables , vous pouvez utiliser à la place Object.keys
. Cela renverrait la même collection, moins la constructor
propriété non énumérable .