JS 기능 정의는 공식적인 매개 변수 이름을 지정할 수 있습니다. 이 매개 변수는 기능이 호출되면 모든 실제 매개 변수 가이 데이터 구조의 빠른 정의로 정의됩니다 방법. 다시 말해, JS의 모든 함수는 무한 매개 변수를 지원하고 데이터 유형은 약한 유형이므로 이름을 제외한 JS 함수간에 방법 차이가 없습니까?
항상 방법이 있습니다. JavaScript에서 특수 객체 인수를 사용하여 기능 과부하를 시뮬레이션 할 수 있습니다. 과부하를 구별하기 위해 들어오는 매개 변수의 수 또는 유형을 결정하는 데 사용하십시오.
1. 매개 변수 수에 따라 다시로드
수신 매개 변수의 수를 결정하려면 js는 인수에 의해 판단 될 수 있습니다.
코드 사본은 다음과 같습니다.
<script type = "text/javaScript">
함수 add () {
if (arguments.length == 1) {
경고 (인수 [0] + 10);
}
else if (arguments.length == 2) {
경고 (인수 [0] + 인수 [1]);
}
}
// 함수 호출
추가 (10);
추가 (10, 20);
</스크립트>
2. 매개 변수 유형에 따라 다시로드
가변 유형을 판단하는 3 가지 방법이 있습니다.
1. typeof 문을 사용하여 변수 유형을 판단하고 typeof 문은 유형에 해당하는 문자열을 반환합니다.
2. 인스턴스 문을 사용하여 변수 유형을 판단하면 instanceof 문은 true/false를 반환합니다.
3. 생성자 속성을 사용하여 변수를 구성하는 데 사용되는 생성자 참조를 반환하는 가변 유형을 결정합니다.
비교 표 : TypeOf를 사용하면 특정 유형을 정확하게 결정할 수 없으므로 생성자를 사용하여 판단을합니다.
| 타입 | 끈 | 숫자 | 물체 | 기능 | 부울 | 물체 | 물체 |
| 건설자 | 끈 | 숫자 | 물체 | 기능 | 부울 | 정렬 | 사용자 정의 |
코드 사본은 다음과 같습니다.
<script type = "text/javaScript">
함수 add ()
{{
if (arguments.length == 0) 반환 0;
var sum = 0;
for (var i = 0; i <arguments.length; i ++) {
if (인수 [i] .constructor == 번호) {
// 또는 변경 사항 : if (인수 [i] instanceof 번호)
// 또는 변경 : if (typeof (arguments [i]) == "숫자")
sum += 인수 [i];
}
}
반환 합계;
}
// 함수 호출
경고 (add (10));
경고 (Add (10,20));
</스크립트>