yiwei 프로젝트 의 자 바스 크 립 트 관리 및 유지보수

  • 네 임 스페이스 (namespace):
  •     개발 자 들 을 골 치 아 프 게 하 는 문 제 는 함수 명 / 유형 명 과 다른 사람의 충돌 을 어떻게 방지 하 느 냐 하 는 것 이다. 한 회사 내부 프로젝트 팀 간 에 명명 예약 (예 를 들 어 접두사 추가 등) 을 통 해 이 문 제 를 해결 할 수 있다.이 문 제 는 자 바스 크 립 트 개발 에서 발생 하 는 결과 가 매우 심각 할 것 입 니 다. JS 는 해석 이 실행 되 기 때문에 뒤에 같은 이름 의 변 수 를 정의 하면 앞의 변 수 를 덮어 쓰 고 새로운 정의 변수의 의 미 를 적용 합 니 다. 이것 은 JS 에서 합 법 적 이 고 잘못된 알림 이 없 기 때문에 bug 를 찾기 어렵 습 니 다.    현재 최신 버 전의 JavaScript 는 네 임 스페이스 를 지원 하지 않 기 때문에 네 임 스페이스 의 효 과 를 모방 하 는 메커니즘 이 필요 합 니 다.
    if($package)
    {
        try {
            throw new Error("$package    !");
        } catch (e) {
            alert(e.name + ": " + e.message);
        }
    
    }
    var $package =function() {
        var a = arguments,
        o = null,
        i, j, d,rt;
        for(i=0; i<a.length; ++i) {
            d = a[i].split(".");
            rt = d[0];
            eval('if (typeof ' + rt + ' == "undefined"){' + rt + ' = {};} o = ' + rt + ';');
            for(j=1; j<d.length; ++j) {
                o[d[j]]=o[d[j]] || {};
                o=o[d[j]];
            }
        }
        return o;
    };
    
    
    $package("Yiwei.widget");
    
    // Creating a class
    Yiwei.widget.widgetName = new Class({
            options: {
                    // options goes here
            },
    
            initialize: function(options) {
                    this.setOptions(options);
                    // initialize commands goes here
            }
    });
    Yiwei.widget.widgetName.implement(new Events); // Implements addEvent(type, fn), fireEvent(type, [args], delay) and removeEvent(type, fn)
    
    Yiwei.widget.widgetName.implement(new Options);// Implements setOptions(defaults, options);
    

     
  • JS 파일 관리
  •     yiwei 프로젝트 는 mootools 라 는 제3자 js 라 이브 러 리 를 사용 하기 때문에 mootools. js 와 mootools - more. js 라 는 두 개의 js 파일 이 필요 합 니 다. 그리고 base. js 를 추가 하여 공공 js 코드 를 저장 한 다음 에 각 기능 모듈 에 JS 파일 을 할당 하고 기능 모듈 이름 으로 JS 이름 을 지정 해 야 합 니 다.
  • 명명 규칙
  •     base. js 에서 클래스 를 정의 할 때 yiwei. base. xxx 형식 으로 xxx 는 당신 이 정의 하고 자 하 는 클래스 이름 을 표시 합 니 다.    각 기능 모듈 의 js 파일 에서 클래스 를 정의 하면 yiwei. 기능 모듈 이름. xxx 형식 으로 명명 합 니 다.
  • Js 코드 압축
  •     압축 도 구 는 yuicompressor - 2.4.2 를 사용 합 니 다.

    좋은 웹페이지 즐겨찾기