W nowoczesnych przeglądarkach można użyć Object.getOwnPropertyNamesdo pobrania wszystkich właściwości (zarówno wyliczalnych, jak i niewliczalnych) obiektu. Na przykład:
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;
};
Object.getOwnPropertyNames( Person.prototype );
Zauważ, że to pobiera tylko własne właściwości , więc nie zwróci właściwości znalezionych gdzie indziej w łańcuchu prototypów. To jednak nie wydaje się być Twoją prośbą, więc przyjmuję, że takie podejście jest wystarczające.
Jeśli chcesz zobaczyć tylko wyliczalne właściwości, możesz zamiast tego użyć Object.keys. To zwróci tę samą kolekcję, pomniejszoną o niewliczalną constructorwłaściwość.