Web/JavaScript
[JavaScript] 오버로딩
manzoo
2019. 8. 8. 16:29
자바스크립트에서는 오버로딩 기능을 제공하지 않는다.
(매개변수 형태가 다른 함수여도) 동일한 이름의 함수가 정의되면, 함수가 재정의된다.
책에서 보니 함수 이름 충돌때문에, 내부 함수로 많이 사용한다고 적혀져 있었다.
그럼 오버로딩 기능은 사용할 수 없는 건가? 궁금해서 찾아보니 변수 arguments 를 사용하여 오버로딩 기능을 구현할 수 있었다.
변수 arguments 는 모든 전달인자를 받는 배열이다.
따라서 arguments의 크기에 따라 다른 처리를 해주면 된다.
<script>
function func(s1, s2) {
if (arguments.length == 1) {
alert(s1);
}
else {
alert(s1 + s2);
}
}
func('hi');
func('hi', 'java script');
</script>