상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
궁금한 상식 보기
치아미백을 하면 치아가 민감해질까요?
치아미백이 기존의 치아 색소침착 제거에 효과적인가요?
치아 스케일링을 하지 않으면 어떤 문제가 발생하나요?
치아 스케일링 후 간단한 자연 요법이 있을까요?
월세의 기본 법칙은 어떤 것들이 있나요?
헥사메딘 관련 특허는 어떤 것들이 있나요?
헥사메딘의 API(활성 성분)로서의 가능성은 무엇인가요?
개인회생전세대출을 통해 주거 환경을 개선한 사례는?
치아 마모 레진 비용이 앱이나 웹사이트에서 볼 수 있나요?
치아 마모 레진 비용을 적어도 미리 예측할 수 있는 방법은?
치아 마모 레진 비용을 담당 의사와 직접 상담해도 될까요?
노인 치과에서 일반적인 문진 항목은 무엇인가요?
Previous
Next
수정하기 - 자바스크립트에서 함수의 오버로딩(Overloading)은 어떻게 이루어지나요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
<a href='https://sangseek.com/sangseeks/자바/ko'>자바</a>스크립트에서 함수 <a href='https://sangseek.com/sangseeks/오버로딩/ko'>오버로딩</a>(Overloading)은 다른 프로그래밍 언어에서와 같은 방식으로 지원되지 않습니다. 예를 들어, Java나 C++와 같은 언어에서는 동일한 이름의 함수를 매개변수의 수나 타입에 따라 여러 개 정의할 수 있지만, 자바스크립트는 이러한 기능을 기본적으로 제공하지 않습니다. 그러나 자바스크립트에서도 함수 오버로딩을 구현할 수 있는 몇 가지 방법이 있습니다. 1. 매개변수의 수에 따른 처리 자바스크립트에서는 함수의 매개변수 수에 관계없이 함수를 정의할 수 있습니다. 이를 활용하여 함수 내부에서 매개변수의 수를 체크하고, 그에 따라 다른 동작을 수행하도록 구현할 수 있습니다. 예를 들어: ```javascript function exampleFunction(a, b) { if (arguments.length === 1) { console.log("One argument: " + a); } else if (arguments.length === 2) { console.log("Two arguments: " + a + ", " + b); } else { console.log("No arguments or more than two"); } } exampleFunction(1); // One argument: 1 exampleFunction(1, 2); // Two arguments: 1, 2 exampleFunction(1, 2, 3); // No arguments or more than two ``` 위의 예제에서 `exampleFunction`은 매개변수의 수에 따라 다른 메시지를 출력합니다. `arguments` 객체를 사용하여 전달된 인자의 수를 확인할 수 있습니다. 2. 매개변수의 타입에 따른 처리 자바스크립트는 동적 타입 언어이기 때문에, 매개변수의 타입에 따라 다른 동작을 수행하도록 함수를 구현할 수 있습니다. 예를 들어: ```javascript function process(value) { if (typeof value === 'string') { console.log("String: " + value); } else if (typeof value === 'number') { console.log("Number: " + value); } else { console.log("Other type"); } } process("Hello"); // String: Hello process(42); // Number: 42 process(true); // Other type ``` 이 예제에서는 `process` 함수가 전달된 인자의 타입에 따라 다른 메시지를 출력합니다. 3. 객체를 통한 오버로딩 객체를 사용하여 좀 더 구조화된 방식으로 오버로딩을 구현할 수 있습니다. 매개변수로 객체를 전달하고, 해당 객체의 속성에 따라 다른 동작을 수행하도록 할 수 있습니다. ```javascript function createUser({ name, age }) { console.log(`Name: ${name}, Age: ${age}`); } createUser({ name: "Alice", age: 30 }); // Name: Alice, Age: 30 ``` 이 방법은 매개변수의 수가 많아질 경우 특히 유용합니다. 객체를 사용하면 매개변수의 순서에 상관없이 값을 전달할 수 있습니다. 4. Rest Parameters와 Spread Syntax <a href='https://sangseek.com/sangseeks/ES6/ko'>ES6</a>에서 도입된 Rest Parameters를 사용하면 <a href='https://sangseek.com/sangseeks/가변/ko'>가변</a> 인자를 처리할 수 있습니다. 이를 통해 여러 개의 인자를 배열 형태로 받을 수 있습니다. ```javascript function sum(...numbers) { return numbers.reduce((acc, curr) => acc + curr, 0); } console.log(sum(1, 2, 3)); // 6 console.log(sum(1, 2, 3, 4, 5)); // 15 ``` 이 예제에서 `sum` 함수는 전달된 모든 숫자를 더하여 반환합니다. Rest Parameters를 사용함으로써 매개변수의 수에 관계없이 유연하게 처리할 수 있습니다. 결론 자바스크립트에서 함수 오버로딩은 다른 언어와는 다르게 구현되지만, 다양한 방법을 통해 유사한 기능을 구현할 수 있습니다. 매개변수의 수나 타입을 체크하거나, 객체를 사용하거나, Rest Parameters를 활용하는 등의 방법을 통해 원하는 기능을 구현할 수 있습니다. 이러한 유연성은 자바스크립트의 강력한 특징 중 하나이며, 개발자가 필요에 따라 다양한 방식으로 함수를 정의하고 사용할 수 있게 해줍니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기