У сучасних браузерах ви можете Object.getOwnPropertyNames
отримати всі властивості (як перелічені, так і незліченні) об’єкта. Наприклад:
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 );
Зверніть увагу, що це отримує лише власні властивості , тому не повертає властивості, знайдені в інших місцях ланцюжка прототипів. Однак, схоже, це не ваш запит, тому я вважаю, що цього підходу достатньо.
Якщо ви хочете побачити лише незліченні властивості, ви можете замість цього використовувати Object.keys
. Це поверне ту саму колекцію, мінус незліченне constructor
майно.