>웹 프론트엔드 >JS 튜토리얼 >JavaScript 메소드 오버로딩 effect_javascript 기술

JavaScript 메소드 오버로딩 effect_javascript 기술

WBOY
WBOY원래의
2016-05-16 18:48:321083검색

JavaScript 메소드에는 읽기 전용인 인수라는 변수 배열이 있습니다. 실제로 전달된 모든 매개변수 변수는
이를 통해 전달된 매개변수를 유형 확인할 수 있습니다. 과부하.
변수 유형을 결정하는 방법에는 두 가지가 있습니다.
1, typeof 문 사용:

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

function check( ){
if(typeofargs[0] == 'string')
alert('전달한 매개변수는 문자열입니다.')
else if(typeofargs[0] = = 'number')
alert('전달한 매개변수는 숫자입니다');
}

2, 모든 JavaScript 변수가 갖는 속성 생성자를 사용합니다. 이 속성은 이 변수의 생성자를 구성합니다:
코드 복사 코드는 다음과 같습니다:

function check(){
if(arguments[0].constructor == String)
alert('전달한 매개변수는 문자열입니다.')
else if(arguments[0].constructor = = Number)
alert('전달한 매개변수는 숫자입니다.')
}

비교표:
생성자 유형
------ ------ ---------------
string String
number Number
object Object
function Function
boolean Boolean
object 배열
객체 사용자
이 비교표를 보면 typeof가 특정 유형을 정확하게 판별할 수 없음을 알 수 있으므로 생성자를 사용하여
을 판별합니다.
먼저 매개변수 유형과 개수를 결정하는 메소드를 정의합니다
코드 복사 코드는 다음과 같습니다.

function checkArgs(types,args){
// 매개변수 개수 확인
if(types.length != args.length){
return false
}
// 매개변수 유형 확인
for(var i=0; iif(args[i].constructor != 유형[i]){
return false;
}
}
return true;
}

위 메서드를 적용하는 메서드를 정의합니다.
코드 복사 코드는 다음과 같습니다.

function show(){
// 매개변수가 문자열인 호출을 처리합니다
if(checkArgs([ String],arguments)){
alert(arguments[0]);
}
// 매개변수가 문자열과 숫자인 호출을 처리합니다
else if( checkArgs([String,Number ],arguments)){
var s = ''
for(var i=0; is =arguments[0] ;
}
alert
// 매개변수가 요구사항을 충족하지 않는 경우
}else{
alert('지원되지 않는 매개변수'); }
}

우리가 정의한 JavaScript 메소드에 엄격한 매개변수 요구사항이 있는 경우 이러한 방식으로 코드를 작성할 수 있습니다.
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.