>웹 프론트엔드 >JS 튜토리얼 >JavaScript 네임스페이스 사용법 소개_javascript 기술

JavaScript 네임스페이스 사용법 소개_javascript 기술

WBOY
WBOY원래의
2016-05-16 17:24:101666검색

Java와 C#을 사용해 본 학생들은 네임스페이스에 매우 익숙합니다. 복잡한 시스템에는 프로그래밍 사양으로 인해 언어에서 제공하고 아키텍처에서 미리 정의한 함수와 개체가 너무 많습니다. 실용적인 의미를 지닌 이름을 달라고 하면 필연적으로 동일한 이름으로 인해 잘못된 호출이 발생하게 되지만, 네임스페이스를 사용하면 이러한 문제가 없어집니다. 이름 중복 문제를 해결하기 위해

Javascript를 사용하는 것은 그리 편하지 않습니다. Javascript에는 기능 범위만 있습니다. 블록과 Shenma 파일은 모두 네임스페이스로 간주됩니다. 때로는 일부 중복된 이름으로 인해 발생하는 오류가 디버깅 및 해결하기 어렵습니다.

간단한 예

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



                                                                               >
test2(){
함수 경고('test2')
                            



이 예에서는 브라우저마다 성능이 다르며 IE는 스택 오버 흐름을 보고하고 Firefox는 종료됩니다. . . 어쨌든 오류를 보고합니다. 경고 함수는 경고 함수에서 호출됩니다. 이런 식으로. , 이는 루프에서 호출됩니다. 읽고 나면 너무 분명하다고 말할 수도 있습니다. 누가 실수를 했는지, 사용자 정의 메소드가 close(종종 발생함)를 호출한 다음 외부 파일 함수가 내부적으로 호출됩니다. , 함수가 창의 닫기 메서드를 호출하면 오류가 많이 숨겨집니다.


간단한 네임스페이스
자바스크립트에는 파일 범위가 없기 때문에 서로 다른 기능이 서로 다른 파일에 흩어져 있거나 심지어 서로 다른 사람이 작성하여 이름이 중복될 확률이 크게 높아집니다. 충분히 조심하는 것만으로도 충분합니까? 꼭 그런 것은 아니고 예상치 못한 상황도 있는데, 예를 들어 상속을 자주 사용하기 때문에 이전에 등장한 적이 없는 확장 함수를 작성했는데, 의외로 EcmaScript5에 확장 함수가 추가되면서 네임스페이스의 필요성이 반영되었습니다.

JavaScript에는 함수 범위가 있습니다. 이를 사용하여 함수 본문에 사용자 정의 함수를 작성할 수 있으므로 함수의 변수, 개체 및 함수가 네임스페이스에 있는 것처럼 외부와 격리됩니다.

코드 복사

코드는 다음과 같습니다.

}




이렇게 하면 사용자 정의된 알림 방법이 창 알림과 충돌하지 않습니다.


단순진화


가능하지만 가장 큰 문제는 호출 방법이 복잡하고 보기 흉하다는 점입니다! 개체는 호출될 때마다 인스턴스화되어야 하며, 그런 다음 해당 메서드를 호출해야 자동 인스턴스화를 달성할 수 있습니다.

코드 복사

코드는 다음과 같습니다.