ใน JavaScript เรามีสองสามวิธีในการรับคุณสมบัติของวัตถุขึ้นอยู่กับสิ่งที่เราต้องการได้รับ
1) Object.keys()
ซึ่งส่งคืนคุณสมบัติที่นับได้ของอ็อบเจ็กต์ทั้งหมดเป็นของตัวเองวิธี ECMA5
2) for...in
ลูปซึ่งส่งคืนคุณสมบัติที่นับได้ทั้งหมดของอ็อบเจกต์ไม่ว่าจะเป็นคุณสมบัติของตัวเองหรือสืบทอดมาจากโซ่ต้นแบบ
3) Object.getOwnPropertyNames(obj)
ซึ่งส่งคืนคุณสมบัติของตัวเองทั้งหมดของวัตถุแจกแจงได้หรือไม่
นอกจากนี้เรายังมีวิธีการเช่นhasOwnProperty(prop)
ให้เราตรวจสอบว่าทรัพย์สินนั้นสืบทอดมาหรือเป็นของวัตถุนั้นจริงหรือไม่และpropertyIsEnumerable(prop)
ตามที่ชื่อแนะนำช่วยให้เราตรวจสอบว่ามีการแจกแจงคุณสมบัติหรือไม่
ด้วยตัวเลือกทั้งหมดนี้ไม่มีทางที่จะได้รับคุณสมบัติที่ไม่สามารถระบุได้และไม่ใช่ของตัวเองซึ่งเป็นสิ่งที่ฉันต้องการทำ มีวิธีใดบ้างที่จะทำเช่นนี้? กล่าวอีกนัยหนึ่งฉันจะได้รับรายการคุณสมบัติที่ไม่สามารถนับได้ที่สืบทอดมาได้หรือไม่?
ขอขอบคุณ.