>  기사  >  웹 프론트엔드  >  js 덮어쓰기 및 오버로딩 function_javascript 기술

js 덮어쓰기 및 오버로딩 function_javascript 기술

WBOY
WBOY원래의
2016-05-16 18:45:39844검색

JAVA를 공부한 사람들은 함수 커버리지와 오버로딩에 대해 매우 익숙할 것입니다.
오버로딩이란 두 개 이상의 함수의 매개변수 유형, 순서, 개수, 반환 값이 서로 다른 것을 의미합니다.
커버링이란 두 개 이상의 함수의 매개변수 유형, 순서, 개수, 반환값이 완전히 동일하다는 의미입니다.
JavaScript에 정말 이 기능이 있나요?
답은 JS에서 함수에 중복된 이름이 있는 경우 마지막 정의만 사용된다는 것입니다.
먼저 아래 코드를 보세요

코드를 복사하세요 코드는 다음과 같습니다




새 문서








    

    



2차 시험


    <입력 유형='버튼' onclick='testFun2();' value='인수가 없는 함수'/>

    



3차 시험


    <입력 유형='버튼' onclick='testFun3();' value='테스트 함수는 동일한 이름과 인수를 공유합니다.'/>







먼저 인수가 없는 function이라는 버튼을 누릅니다.

페이지 결과는 인수가 하나인 'testFun'이라는 함수이고 인수는 정의되지 않았습니다.
그런 다음 인수가 있는 function이라는 버튼을 누릅니다. 인수 1개 페이지의 테스트 버튼
의 결과는 인수가 하나인 'testFun'이라는 함수이고 인수는 테스트
이며 인수 없이 function이라는 버튼을 누릅니다
의 결과 페이지는 인수가 없는 'testFun2'라는 함수입니다.
그런 다음 인수가 하나인 함수라는 버튼을 누릅니다.
페이지의 결과는 인수가 없는 'testFun2'라는 함수입니다. 🎜>
위에서 테스트하는 동안 두 함수의 정의 순서만 변경했을 뿐 결과가 상당히 다르다는 것을 발견했습니다.
위 테스트에서 다음과 같은 결론을 내릴 수 있습니다. 오버로드된 경우 함수 정의가 아래에 있는 한 위의 함수 정의를 덮어씁니다.
자, 취재 내용을 살펴보겠습니다.
테스트 함수라는 버튼을 누르면 동일한 이름과 인수가 공유됩니다.

페이지 결과는 'testFun3'이라는 함수입니다.
테스트 결과는 뻔하고 결론은 다음과 같습니다. 의 위와 동일합니다.
마침내 우리는 다음과 같은 결론에 도달했습니다.
메서드 이름이 같은 경우 JS는 마지막으로 정의된 함수를 함수 본문으로 사용합니다. 물론 여기에는 JS의 상속 재정의가 포함되지 않습니다.
벽돌 구입을 환영합니다.
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.