본문 바로가기

Web/JavaScript

[JavaScript] 오버로딩

자바스크립트에서는 오버로딩 기능을 제공하지 않는다.

(매개변수 형태가 다른 함수여도) 동일한 이름의 함수가 정의되면, 함수가 재정의된다.

 

책에서 보니 함수 이름 충돌때문에, 내부 함수로 많이 사용한다고 적혀져 있었다.

 

그럼 오버로딩 기능은 사용할 수 없는 건가? 궁금해서 찾아보니 변수 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>

'Web > JavaScript' 카테고리의 다른 글