>  기사  >  웹 프론트엔드  >  자바스크립트 함수 오버로딩 솔루션 공유_기본지식

자바스크립트 함수 오버로딩 솔루션 공유_기본지식

WBOY
WBOY원래의
2016-05-16 16:59:221041검색

JS의 함수 정의는 형식적인 매개변수 이름을 지정할 수 있습니다. 우리는 js가 최소한 다양한 수의 매개변수를 사용하여 메소드 오버로딩을 지원할 수 있다고 생각합니다. 그러나 이는 불행히도 js의 모든 매개변수에 불과합니다. 인수가 전달되면 이 매개변수는 함수가 호출될 때 모든 실제 매개변수가 이 데이터 구조에 저장됩니다. 접근 방법. 즉, JS의 모든 함수는 무제한 매개변수를 지원하며, 데이터 유형은 약한 유형이므로 JS 함수 간에는 이름 외에는 실제로 메소드 차이가 없습니까?

항상 JavaScript에서 특수 객체 인수를 사용하여 함수 오버로딩을 시뮬레이션할 수 있는 방법이 있습니다. 오버로딩을 구별하기 위해 전달된 매개변수의 수나 유형을 결정하는 데 사용합니다.

1. 매개변수 개수에 따른 과부하

js는 인수.길이 속성을 사용하여 수신 매개변수의 수를 결정할 수 있습니다.

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


2.根据参数类型重载

변수 유형을 결정하는 세 가지 방법:
1. typeof 문을 사용하여 변수 유형을 결정합니다. typeof 문은 유형에 해당하는 문자열을 반환합니다.
2.instanceof문을 사용하여 변수 유형을 결정합니다.instanceof문은 true/false를 반환합니다.
3. 생성자 속성을 사용하여 변수 유형을 결정합니다. 이 속성은 변수를 생성하는 데 사용되는 생성자 참조를 반환합니다.
비교표: typeof가 특정 유형을 정확하게 판별할 수 없음을 알 수 있으므로 생성자를 사용하여 판단합니다.

typeof string number object function boolean object object
constructor String Number Object Function Boolean Array User Define

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



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