>  기사  >  웹 프론트엔드  >  JavaScript_javascript 팁의 메소드 오버로딩 예

JavaScript_javascript 팁의 메소드 오버로딩 예

WBOY
WBOY원래의
2016-05-16 16:09:011029검색

.NET의 메서드 오버로딩은 정말 매우 편리합니다. Javascript에서도 같은 작업이 가능합니까?

Javasciprt에는 메소드 오버로딩 기능이 없습니다. 과거에는 많은 사람들이 단순히 더 적은 수의 매개변수를 전달한 다음 매개변수가 "정의되지 않음"인지 여부에 따라 처리 방법을 결정하여 유사한 메소드 오버로딩을 달성했습니다. 기능.

예:

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

var showMessage = 함수(이름,값,ID){
If(id != ”정의되지 않음”){
경고(이름 값 id);
}
​ else if(값 != ”정의되지 않음”){
경고(이름 값);
}
그렇지 않으면{
경고(이름);
}
}

showMessage("하하");
showMessage("하하","??");
showMessage("하하","??",124124);

오늘 Ajaxian에서 Javascript 메소드 오버로딩에 대한 기사를 봤습니다. 다른 메소드를 통해서도 구현할 수 있습니다.

이 코드를 살펴보세요.

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

// addMethod - 작성자: John Resig(MIT 라이선스)
function addMethod(객체, 이름, fn){
var old = 객체[ 이름 ];
객체[ 이름 ] = 함수(){
If ( fn.length ==args.length ){
             return fn.apply( this, 인수 );
}
        else if ( typeof old == 'function' ) {
old.apply( this, 인수 )를 반환합니다.
}
}
};

var UserInfo = function(){
​ addMethod(this,”find”,function(){
Alert("매개변수 없음");
});

addMethod(this,”find”,함수(이름){
Alert("전달된 매개변수는 "name"이라는 매개변수입니다.
});

addMethod(this,”find”,function(이름,값){
Alert("두 개의 매개변수가 전달됩니다. 하나는 name="name"이고 다른 하나는 value="value)입니다.
});
};

var userinfo = new UserInfo();
userinfo.find();
userinfo.find('나는 누구인가?');
userinfo.find('누군가','1512412514');


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