>웹 프론트엔드 >JS 튜토리얼 >Javascript 기본 기능 '오버로딩' 상세 소개_기본 지식

Javascript 기본 기능 '오버로딩' 상세 소개_기본 지식

WBOY
WBOY원래의
2016-05-16 17:18:401004검색

자바스크립트에는 다른 프로그래밍 언어처럼 함수 시그니처가 없습니다. (함수 시그니처란 무엇인가요? 간단히 말하면 함수에서 허용하는 매개변수 유형과 매개변수 개수를 말합니다. 반환 유형도 포함해야 한다고 생각하는 분들도 계십니다. . 구체적인 개념은 온라인으로 확인하실 수 있습니다.

따라서 Javascript는 다른 언어처럼 동일한 메소드 이름과 다른 수의 매개변수를 사용하여 오버로드를 구현할 수 없습니다. 제 말을 믿지 못하신다면 다음을 시도해 보세요.

코드 복사 코드는 다음과 같습니다.

function show(){
Alert ("1 ");
}
함수 표시(num1){
경고(num1);
}

window.onload=function(){
표시( );
            표시(2);
       }

중단점 디버깅 시 매개변수가 없는 show 메소드는 실행되지 않으며 show(num1) 메소드로 덮어쓰게 됩니다.

그러면 자바스크립트에서는 "오버로딩"을 구현할 수 없다는 건가요? 대답은 '예'입니다. 그것은 단지 다른 방법일 뿐입니다. 예, 인수를 사용하세요.

그럼 인수란 무엇인가요? 이는 JS의 특수 속성으로, 배열처럼 첨자 인덱스를 통해 매개변수 값을 가져올 수 있고(배열은 아님) 길이를 통해 매개변수 개수를 가져올 수 있습니다.

코드 복사 코드는 다음과 같습니다.

function showParamsCount(){
Alert ("매개변수 수: "args.length);//출력: 매개변수 수: 4
Alert("아래 첨자 인덱스가 3인 매개변수:" 인수[3]);//출력: 아래 첨자 인덱스가 3인 매개변수 :Hello
}

} window.onload=function(){
showParamsCount("Hello",4,5,"Hello");
}

또 알아야 할 점은 JS에서는 함수의 명명된 매개변수가 필요하지 않기 때문에 호출 시 전달되는 매개변수의 개수를 알고 싶다면 인수를 통해 매개변수를 가져와야 한다는 것입니다.

다음은 간단한 메소드 오버로딩입니다.

코드 복사 코드는 다음과 같습니다.

function showMessage(){
if (arguments. length==1){
                     Alert(arguments[0]);  ; showMessage("안녕하세요!");
showMessage ("장산","안녕하세요 여동생");
}



이런 식으로 JS 오버로딩이 구현됩니다.

Advanced Programming in JS라는 책을 읽으면서 인수의 값이 항상 해당 명명된 매개변수의 값과 동기화된다는 사실을 발견했습니다. 이전에는 이 문제를 발견한 적이 없었습니다.



코드 복사

코드는 다음과 같습니다.


function showMessage(name,msg){
인수[1]="msg 값을 변경할 수 있습니다.";
Alert(name "Say:" msg);//출력: Zhang San Say: msg 값을 변경할 수 있습니다
}

Window.onload=function(){
showMessage("Zhang San","Hi your sister")

자, 이것이 js "오버로딩"에 대한 기본 지식의 전부입니다
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.