JavaScript에서 기능 함수는 객체입니다.
JS에는 메소드 과부하가 없습니다
JavaScript에는 메소드 (함수) 과부하 개념이 없습니다.
예:
코드 사본은 다음과 같습니다.
<html>
<헤드>
<script type = "text/javaScript">
함수 추가 (번호)
{
경고 (번호 + 20);
}
함수 추가 (번호, 번호 1)
{
경고 (번호 + 30);
}
추가 (10);
</스크립트>
</head>
<body>
</body>
</html>
웹 페이지의 총알 상자는 40을 보여줍니다.
설명 두 번째 방법은 두 개의 매개 변수이지만 여전히 호출됩니다.
두 가지 메소드의 순서를 교환 한 후 팝업 박스는 30을 표시합니다. 매개 변수 수에 관계없이 동일한 이름의 다음 방법이 호출됨을 알 수 있습니다.
이 현상을 설명하는 방법은 무엇입니까?
함수 선언이 실제로 객체를 생성하기 때문입니다.
코드 사본은 다음과 같습니다.
<html>
<헤드>
<script type = "text/javaScript">
함수 추가 (번호)
{
경고 (번호 + 20);
}
/*
위의 함수는 다음과 같습니다.
var add = 함수 (번호)
{
경고 (번호 + 20);
}
*/
함수 추가 (번호, 번호 1)
{
경고 (번호 + 30);
}
/*
위의 함수는 다음과 같습니다.
var add = 함수 (번호, 번호 1)
{
경고 (번호 + 30);
}
*/
추가 (10);
</스크립트>
</head>
<body>
</body>
</html>
이런 식으로 추가 된 후속 객체를 가리키고 메소드가 호출 될 때 지정된 매개 변수가 순서대로 메소드 형식 매개 변수에 할당되며 이후에 할당되지 않은 매개 변수는 정의되지 않습니다.
JavaScript 함수를 호출 할 때 매개 변수 수를 엄격히 확인할 수 없습니다. 공식 매개 변수 수보다 실제 매개 변수 수를 작은 매개 변수 수를 갖는 것은 괜찮습니다. 할당되지 않은 공식 매개 변수는 정의되지 않은 값입니다.
실제 매개 변수의 수는 공식 매개 변수 수보다 클 수도 있습니다. 이러한 방식으로 이전 실제 매개 변수 만 사용되며 추가 실제 매개 변수는 사용되지 않습니다.
기능 객체
JavaScript에는 함수 객체가 있으며 모든 사용자 정의 함수는 기능 객체 유형입니다.
함수 객체에서 수신 된 모든 매개 변수는 문자열 유형이고, 마지막 매개 변수는 실행될 기능 본체이며, 이전 매개 변수는 기능이 실제로 수신 해야하는 매개 변수입니다.
예:
코드 사본은 다음과 같습니다.
<html>
<헤드>
<script type = "text/javaScript">
var add = new 함수 ( "번호", "숫자 1", "alert (number + number1);");
var add = new 함수 ( "번호", "alert (번호 + 20);");
추가 (10, 30);
</스크립트>
</head>
<body>
</body>
</html>
암시 적 객체 주장
JavaScript에서는 각 함수에는 암시 적 객체 인수가 있으며 실제로 기능에 전달되는 매개 변수를 나타냅니다.
인수는 함수의 공식 매개 변수와 그 숫자와 관련이 없습니다.
인수는 유용한 속성 길이를 가지며 실제 매개 변수의 길이를 나타냅니다. 이 기능을 사용하여 기능의 과부하를 시뮬레이션 할 수 있습니다.
운동 예 :
코드 사본은 다음과 같습니다.
<html>
<헤드>
<script type = "text/javaScript">
함수 추가 (Number1, Number2)
{
경고 (arguments.length);
경고 (인수 [0]);
경고 (인수 [1]);
경고 (인수 [2]);
}
// 추가 (2, 3, 4);
함수 add2 ()
{
if (1 == arguments.length)
{
경고 (인수 [0]);
}
else if (2 == arguments.length)
{
경고 (인수 [0] + 인수 [1]);
}
else if (3 == arguments.length)
{
경고 (인수 [0] + 인수 [1] + 인수 [2]);
}
}
add2 (3);
add2 (3, 4);
add2 (3, 4, 5);
</스크립트>
</head>
<body>
</body>
</html>
각 함수 객체에는 길이 속성이있어 함수가 수신 할 것으로 예상되는 매개 변수 형식을 나타냅니다.
함수의 인수와 다릅니다. arguments.length는 기능에 의해 실제로 수신 된 매개 변수 수를 나타냅니다.
예:
코드 사본은 다음과 같습니다.
<html>
<헤드>
<script type = "text/javaScript">
var add = function (num, num2, num3)
{
경고 (num + num2 + num3);
}
경고 (add.length); // 출력 3
추가 (1, 2, 3);
var add2 = function ()
{
}
경고 (add2.length); // 출력 0
</스크립트>
</head>
<body>
</body>
</html>