Chúng ta cần viết chương trình (hàm) nhận vào tham chiếu đối tượng và trả về mảng tất cả phương thức (hàm thành viên) tồn tại trên đối tượng đó. Chỉ trả về phương thức trong mảng, không bao gồm thuộc tính khác có kiểu dữ liệu không phải hàm.
Sử dụng hàm Object.getOwnPropertyNames.
Object.getOwnPropertyNames() trả về mảng tất cả thuộc tính (liệt kê được hoặc không) tìm thấy trực tiếp trên đối tượng cho trước. Sau đó lọc mảng chỉ giữ thuộc tính kiểu '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));Kết quả
Kết quả in ra console:
[ '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' ]