JavaScript_javascript 기술로 네임스페이스를 생성하는 가장 간단한 구현

WBOY
풀어 주다: 2016-05-16 19:07:15
원래의
1064명이 탐색했습니다.

최근 Ext 소스 코드를 보고 어떻게 네임스페이스 기능을 구현하는지 보았습니다:

Ext NameSpace 구현 코드:

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

네임스페이스 : function(){
var a=arguments, o=null, i, j, d, rt
for ( i=0 ; i d=a[i].split(".")
rt = d[0]
eval('if (typeof ') rt ' = "정의되지 않음"){' rt ' = {};} o = ' rt ';') for (j=1; j o[d [j] ]=o[d[j]] || {}; 🎜>


나는 가장 단순한 프로그래밍을 좋아합니다(이것은 종종 좋은 습관이 아닙니다. 프로그램이 단순할수록 더 어렵습니다. 이해하는 것입니다) 그래서 이 문제를 더 짧은 방법으로 해결하고 싶습니다.
거의 30분 동안 노력한 끝에 다음 구현을 작성했습니다. 기본적으로 고려해야 할 모든 상황을 고려하여 적어도 페이지에 이미 존재하는 기능을 덮어쓰지는 않습니다.

구현 코드는 다음과 같습니다.




코드 복사


코드는 다음과 같습니다.
함수 네임스페이스(ns){ if(typeof(ns)!="string")return; ns=ns.split(".") var o,ni; 🎜> for(var i =0,len=ns.length;i try{o=(o?(o[ni]=o[ni]| |{}):( eval(ni "=" ni "||{}")))}catch(e){o=eval(ni "={}")}
      } 




테스트를 위해 다음 코드를 저장할 수 있습니다.

테스트 코드:




코드 복사


코드는 다음과 같습니다.


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