Nei browser moderni è possibile utilizzare Object.getOwnPropertyNames
per ottenere tutte le proprietà (sia enumerabili che non enumerabili) su un oggetto. Per esempio:
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 );
Si noti che questo recupera solo le proprietà proprie , quindi non restituirà le proprietà trovate altrove nella catena del prototipo. Questa, tuttavia, non sembra essere la tua richiesta, quindi presumo che questo approccio sia sufficiente.
Se desideri visualizzare solo proprietà enumerabili , puoi invece utilizzare Object.keys
. Ciò restituirà la stessa raccolta, meno la constructor
proprietà non enumerabile .