ในเบราว์เซอร์สมัยใหม่คุณสามารถใช้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
ได้