Computer >> Máy Tính >  >> Lập trình >> Javascript

Nhận tất cả các phương thức của bất kỳ đối tượng JavaScript nào

Chúng tôi được yêu cầu viết một chương trình (hàm) nhận tham chiếu đối tượng và trả về một mảng gồm tất cả các phương thức (hàm thành viên) sống trên đối tượng đó. Chúng tôi chỉ được yêu cầu trả về các phương thức trong mảng chứ không phải bất kỳ thuộc tính nào khác có thể có giá trị kiểu khác với một hàm.

Chúng tôi sẽ sử dụng hàm Object.getOwnPropertyNames

Phương thức Object.getOwnPropertyNames () trả về một mảng tất cả các thuộc tính (có thể liệt kê hoặc không) được tìm thấy trực tiếp trên một đối tượng nhất định. Và sau đó, chúng tôi sẽ lọc mảng để chứa thuộc tính của kiểu dữ liệu chỉ 'function'.

Ví dụ

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));

Đầu ra

Và đầu ra trong bảng điều khiển sẽ là -

[
   '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'
]