Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

การดึงเมธอดทั้งหมดของอ็อบเจ็กต์ใดๆ ใน JavaScript


ภาพรวม

เราต้องเขียนฟังก์ชันที่รับอ้างอิงอ็อบเจ็กต์และคืนอาร์เรย์ของเมธอดทั้งหมด (ฟังก์ชันสมาชิก) ที่อยู่บนอ็อบเจ็กต์นั้น โดยคืนเฉพาะเมธอด ไม่รวมคุณสมบัติประเภทอื่น

ใช้ 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'
]