많은 객체 지향적 인 고급 언어에는 과부하가 있습니다. JavaScript에는 메소드 과부하 개념이 없습니다. 그러나 인수 매개 변수를 사용하여 함수의 과부하를 위장 할 수 있습니다.
시뮬레이션 전에 코드를 살펴 보겠습니다.
코드 사본은 다음과 같습니다.
// 표면에 공식 매개 변수를 선언하는 기능이 없습니다.
기능 fun () {
알림 ( "샘플 코드");
}
재미 ( "Xiao Ming", 100, true); // 나는 세 가지 실제 매개 변수를 직접 썼습니다
결과를 통해 함수를 선언 할 때 공식 매개 변수를 정의하지 않더라도 메소드를 호출 할 때 실제 매개 변수를 작성할 수 있습니다. (실제로 기능을 호출하기 위해 프로그래머에게 쓸 때 공식 매개 변수를 읽습니다)
코드에서 실제 매개 변수를 얻을 수 있습니까? 대답은 예입니다. 코드를 참조하십시오.
코드 사본은 다음과 같습니다.
// 표면에 공식 매개 변수를 선언하는 기능이 없습니다.
기능 fun () {
ALERT (인수 [0]); // 첫 번째 실제 매개 변수의 값을 얻습니다.
경고 (인수 [1]); // 두 번째 실제 매개 변수의 값을 얻습니다.
경고 (인수 [2]); // 세 번째 실제 매개 변수의 값을 얻습니다.
Alert (arguments.length); // 실제 매개 변수 수를 얻습니다.
알림 ( "샘플 코드");
}
재미 ( "Xiao Ming", 100, true); // 나는 세 가지 실제 매개 변수를 직접 썼습니다
코드를 통해 인수 (내부 속성) 자체가 배열이라는 것을 알 수 있으며 그 기능은 메소드의 실제 매개 변수를 저장하는 것입니다.
위의 지식이 있으면 시뮬레이션 방법을 다시로드하기위한 아이디어가 있습니다. 실제 매개 변수 수를 기반으로 판단하여 다른 논리 코드를 실행할 수 있습니다. 간단한 코드는 다음과 같습니다.
코드 사본은 다음과 같습니다.
기능 fun () {
if (arguments.length == 0) {
Alert ( "실제 매개 변수없이 코드 실행");
}
else if (arguments.length == 1)
{
Alert ( "실제 매개 변수로 전달되는 코드 실행");
}
else if (arguments.length == 2)
{
Alert ( "두 개의 실제 매개 변수로 전달되는 코드 실행");
}
}
재미있는();
재미 ( "Xiao Ming");
재미 ( "Xiao Ming", "Xiao Hua");