JavaScript에서 객체가 가진 모든 메서드를 한눈에 확인하고 싶다면 Object.getOwnPropertyNames() 메서드를 활용하면 됩니다. 이 메서드는 해당 객체에 속한 모든 속성 이름을 배열 형태로 반환해 줍니다.
메서드만 골라내는 방법
반환된 속성 중에는 일반 데이터 속성도 포함될 수 있으므로, filter()를 함께 사용하면 타입이 'function'인 항목, 즉 메서드만 깔끔하게 추출할 수 있습니다.
예제
아래 코드는 대표적인 내장 객체인 Math 객체의 모든 메서드를 출력하는 예제입니다. 직접 실행해서 결과를 확인해 보세요.
<!DOCTYPE html>
<html>
<body>
<script>
document.write("<br>"+Object.getOwnPropertyNames(Math).filter(function (p) {
return typeof Math[p] === 'function';
}));
</script>
</body>
</html>위 코드를 실행하면 abs, acos, asin, atan, ceil, floor, max, min, random, round, sqrt 등 Math 객체가 제공하는 다양한 수학 관련 메서드 목록이 화면에 표시됩니다.
핵심 정리
Object.getOwnPropertyNames(객체)로 모든 속성 이름을 가져온 뒤, typeof 연산자로 각 속성의 타입이 'function'인지 검사하면 원하는 객체의 전체 메서드 목록을 손쉽게 얻을 수 있습니다. 이 방식은 Math뿐 아니라 사용자가 직접 정의한 객체에도 동일하게 적용할 수 있습니다.