동일한 웹 페이지에 10개 이상의 js 파일이 도입되면 각 js에서 동일한 이름을 가진
기능이 쉽게 충돌할 수 있습니다.
예를 들어 addCssStyle 메소드는 xxx 라이브러리에 작성되고, addCssStyle 메소드도 yyy 클래스 라이브러리에 작성됩니다.
이 두 메소드의 구체적인 구현에는 일정한 차이가 있습니다.
이 두 구성 요소를 동시에 참조하면 함수 충돌로 인해 페이지 효과가 변경됩니다.
충돌을 피하기 위해 디버깅 및 수정이 매우 고통스럽다면
몇 가지 우수한 참조를 포기하세요. 구성 요소, 그것은 더욱 우울합니다.
이러한 이유로 JavaScript 구성 요소 라이브러리를 캡슐화할 때 충돌을 피하기 위해 네임스페이스를 사용하십시오.
패키지 이름과 클래스 이름에 맞게 모든 메소드와 변수를 작성하세요.
(이때 코드를 작성하는 것은 java의 util 메소드를 캡슐화하는 것만큼 편리한 것 같아요, ㅎㅎ)
이로부터 제 js 라이브러리는 다음과 같이 캡슐화됩니다.
오래 구글링해봤는데 기성품이 없어서 직접 알아낸 샘플코드는 다음과 같습니다.
(lizongbo 원본!!!)
위 코드를 넣고 웹페이지에 복사해서 효과를 보세요.
두 가지 구현 방법을 비교해 보면 두 번째 방법이 기존 코드를 변환하는 것이 가장 편리합니다.
네임스페이스에 맞게 js 파일 이름을 바꾸면 작업이 더 편리해집니다.
예를 들어
라이브러리가 이런 방식으로 작성되면 더 이상 여러 js 파일을 도입한 후 함수 충돌을 걱정할 필요가 없습니다.