>웹 프론트엔드 >JS 튜토리얼 >JavaScript에서 함수 오버로딩 및 매개변수 기본값 구현

JavaScript에서 함수 오버로딩 및 매개변수 기본값 구현

高洛峰
高洛峰원래의
2016-11-26 14:08:541690검색

매개변수 기본값이란 함수 호출 시 실제 매개변수가 생략되면 함수가 자동으로 해당 매개변수에 기본값을 할당해 함수 호출의 편의성과 유연성을 크게 향상시키는 것을 의미합니다.

예를 들어 PHP에서 문자열 차단 함수 substr(string,start,length)를 사용합니다. 길이가 지정되지 않은 경우 이 함수는 기본적으로 문자열의 시작 위치를 문자열 끝까지 차단합니다. 길이를 지정하면 시작 위치부터 시작하는 길이의 문자열을 가로채기 때문에 substr('http://www.hualai.net.cn',11,6) 을 호출하면 hualai가 됩니다. 반환됨; 마지막 매개변수 substr('http://www.hualai.net.cn',11)이 생략되면 hualai.net.cn이 반환됩니다.

예를 들어 jQuery 프레임워크에서 $(selector).html() 메소드는 요소 내의 HTML 코드를 가져오는 반면 $(selector).html(content)는 요소 내의 HTML을 설정하는 것입니다. 요소. 우리는 C 언어에서 다음 형식으로 함수 매개변수의 기본값을 설정할 수 있다는 것을 알고 있습니다:


void foo(int a, int b = 1, bool c = false);



Java에서는 함수 오버로딩을 통해 함수 매개변수의 기본값을 설정할 수 있습니다.

public void foo(int a){
foo(a, 1);
}
public void foo(int a, int b){
foo(a, b, false); >}
public void foo(int a, int b, bool c){
//함수 내용
}




그리고 JavaScript에서는 jQuery와 같은 함수 매개변수의 기본값을 어떻게 설정하나요? JavaScript에는 C 언어에서 함수를 정의할 때 매개 변수 바로 뒤에 값을 할당하는 방법이 없으며 Java와 같은 함수 오버로딩도 없습니다. 그러나 JavaScript에서는 인수 읽기 전용 변수 배열을 통해 이를 수행할 수 있습니다.

function foo(){

var a = 인수[0] ? 인수[0] : 1; var b = 인수[1] ? false;
//함수 내용
}




위는 해당 매개변수가 존재하는지 확인하는 것입니다. 존재하지 않으면 기본값이 사용됩니다. 변수에 첨부하면 매개변수의 유형을 판단하여 오버로드할 수 있습니다.

function foo(){

if(typeofargs[0] == 'string')

Alert(' 매개변수 유형은 문자열입니다.')
else if(typeof 인수[0] == 'number')
Alert('매개변수 유형은 숫자입니다.') ;
}



또는

function foo(){

if(arguments[0].constructor == String)

Alert('매개변수 유형은 문자열입니다.') ;
else if(arguments[0].constructor == Number)
Alert('매개변수 유형은 숫자 값입니다.')
}

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