ภาพรวม
เราต้องเขียนฟังก์ชันที่รับอ้างอิงอ็อบเจ็กต์และคืนอาร์เรย์ของเมธอดทั้งหมด (ฟังก์ชันสมาชิก) ที่อยู่บนอ็อบเจ็กต์นั้น โดยคืนเฉพาะเมธอด ไม่รวมคุณสมบัติประเภทอื่น
ใช้ Object.getOwnPropertyNames ซึ่งคืนอาร์เรย์ของคุณสมบัติทั้งหมด (รวม non-enumerable) แล้วกรองเฉพาะที่เป็นประเภท 'function'
ตัวอย่างโค้ด
const returnMethods = (obj = {}) => {
const members = Object.getOwnPropertyNames(obj);
const methods = members.filter(el => {
return typeof obj[el] === 'function';
});
return methods;
};
console.log(returnMethods(Array.prototype));
ผลลัพธ์ในคอนโซล
[
'constructor', 'concat', 'copyWithin', 'fill', 'find', 'findIndex',
'lastIndexOf', 'pop', 'push', 'reverse', 'shift', 'unshift', 'slice',
'sort', 'splice', 'includes', 'indexOf', 'join', 'keys', 'entries',
'values', 'forEach', 'filter', 'flat', 'flatMap', 'map', 'every',
'some', 'reduce', 'reduceRight', 'toLocaleString', 'toString'
]