JavaScript 네임스페이스에 대한 몇 가지 생각_javascript 팁

WBOY
풀어 주다: 2016-05-16 16:45:30
원래의
1671명이 탐색했습니다.

최근 리팩토링을 하다가 네임스페이스 설정을 발견하고, 지식을 검색하고, 전문가와 상담하고, 경험을 적어보았습니다
창이 최고라는 것은 다들 아실 거라 믿어서 창에 대해서는 쓰지 않겠습니다. 여기에서는 무시하세요.

1: 최상위 수준 정보

코드 복사 코드는 다음과 같습니다.
var ns = ns || 보시다시피 실제로 해당 객체가 없는 것으로 확인되면 new Object() 자동으로 생성되며, 있는 경우 이 개체가 직접 사용되므로 다루지 않습니다.

2: 두 번째 레벨
물론 최상위 ns 아래에 두 번째 레벨, 즉
을 생성할 수도 있습니다. 코드 복사 코드는 다음과 같습니다. ns.ModuleClass = {};
보시다시피 ns 아래에 클래스가 생성됩니다. , 클래스에서 메소드를 계속 생성할 수도 있습니다. 즉,


코드 복사 코드는 다음과 같습니다. ns.ModuleClass.method1= function() {/ ///};
3: 이 com.qw와 같은 다중 레벨
을 수행하는 방법. view에서 네임스페이스로 설정하고 싶은데, 각각 필요합니다. 점으로 구분된 이름을 사용하여 네임스페이스를 별도로 설정하는데, 객체에 설정되어 있습니다. 예시를 보고 아래에 설정해 보겠습니다. window:



함수 네임스페이스(sSpace ) {
var arr = sSpace.split('.'),i = 0,nameI ;
var root = window;
for (; nameI = arr[i ];) {
if (!root[nameI]) {
root[nameI] = {};
}
root = root[nameI];
}
return root;
}


순회를 사용하여 분리된 모든 객체를 객체로 설정하여 분리된 각 객체를 독립적으로 사용할 수 있도록 하는 것이 위에서 언급한 아이디어라는 것을 알 수 있습니다.


4: 일반적으로 사용되는
목록과 네임스페이스를 간단하고 빠르게 설정하기 위한 몇 가지 팁

if (!window.ns) {
window.ns = {};
}
var
if( typeof ns == "정의되지 않음"){
ns = {};
}
if(typeof ns.ClassName == "정의되지 않음"){
ns.ClassName = {};
}


관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿