>웹 프론트엔드 >JS 튜토리얼 >JavaScript_javascript 기술에서 인수 객체를 통해 객체 오버로딩을 구현하는 방법

JavaScript_javascript 기술에서 인수 객체를 통해 객체 오버로딩을 구현하는 방법

WBOY
WBOY원래의
2016-05-16 16:48:311187검색
코드 복사 코드는 다음과 같습니다.

;


여기에 제목 삽입 >
/*
*1.js 함수의 오버로딩이 없습니다
2. js 함수 정의 시 형식 매개변수 개수는 실행 시 전달되는 실제 매개변수 개수와 다를 수 있습니다.
3.js가 실행되면 실제 매개변수는 인수 그룹으로 캡슐화됩니다.

*/
function add(a){
return a 10; > var add=new Function("a","return a 10");
//alert(add(5))
function add(num1,num2){
return num1 num2; 🎜 >}
var add=new Function("num1","num2","return num1 num2")
alert(add(5,6))
alert(add(5)) ; //이러한 호출의 결과는 NaN입니다. 왜냐하면 두 개의 매개 변수가 있는 함수는 나중에 호출할 때 정의되기 때문입니다.
//즉, var 선언이 있더라도 JavaScript에서 변수 이름이 동일한 한, 나중에 정의하면 덮어쓰게 됩니다
//이전에 정의한 =======에서 도출된 결론은 js에 함수 오버로딩이 없다는 것입니다.

//------인수 객체를 사용하여 메소드 오버로딩 시뮬레이션----
//-다양한 매개변수를 기반으로 숫자, 다양한 코드 블록 호출(최대 25개 매개변수)
function addNum(){
alert(arguments.length)
for(var x=0;xalert (arguments[x]);
//이 개체는 함수 본문 내부에만 있을 수 있습니다.
}
if(arguments.length==1){
return 인수[0] 10; >}else if(arguments.length==2){
return 인수[0] 인수[1];
}else{
return "매개변수 오류입니다. 확인하세요."
}
var value=addNum(10,20,30);
alert("함수 반환 값: " value);//결과 값: "매개변수 오류입니다. 확인하세요."
// 실제로 매개변수 판단을 통해 서로 다른 함수를 호출하고 서로 다른 값을 반환하는 것입니다. 이는 Java의 오버로딩과 유사합니다
//그러나 본질적으로 js에서는 오버로딩이 없으면 동일한 변수가 다른 위치에 나타납니다. . 할당되면 필연적으로 이전에 선언된 변수를 덮어쓰게 됩니다. 물론
//함수 내부의 양과 함수 외부의 변수 사이의 관계는 제외됩니다.





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