JS 프로 그래 밍 고급 기술

3735 단어 자바 script
고급 함수
  • 안전 유형 검사
    Object.protitype.toString.call(value)
  • 작용 역 안전 의 구조 함수
    function Person(name, age, job) {
        if (this instanceof Person) {
            this.name = name;
            this.age = age;
            this.job = job;
        } else {
            return new Person(name, age, job);
        }
    }
    //                        ,          
    function Teacher (name, age, job, salary) {
        // this   Peroson       ,      this      
        Person.call(this, name, age, job); 
        this.salary = salary;
    }
    //           ,Teacher.prototype = new Person(),    Teacher      Person  
  • 타성 불 러 오 는 함 수 는 함수 가 호출 될 때 함 수 를 처리 합 니 다.첫 번 째 호출 과정 에서 이 함 수 는 다른 적당 한 방식 으로 실 행 된 함수
    function createXHR () {
        if (typeof XMLHttpRequest != 'undefined) {
            createXHR  = function () {
                return new XMLHttpRequest ();
            }
        } else if (typeof ActiveXObject != 'undefined') {
            createXHR = function () {
                if (typeof arguments.callee.activeString != 'string') {
                    //...
                }
            }
        } else {
            createXHR  = function () {
                // ...
            }
        }
        return createXHR();
    }
    로 덮어 씁 니 다.성명 할 때 적당 한 함 수 를 지정 하고 익명 함 수 를 이용 하여 자체 적 으로 실행 하 며 return 에 적합 한 함수
  • 를 지정 합 니 다.
  • 함수 가 간단 한 bind 함수
    function bind(fn, context){
        return function() {
            return fn.apply(context, arguments)
        }
    }
  • 를 연결 합 니 다.
  • 함수 코 리 화 함수 의 코 리 화 기본 방법 은 함수 바 인 딩 과 같 습 니 다.하나의 패 킷 을 사용 하여 함 수 를 되 돌려 줍 니 다.함수 가 호출 될 때 일부 매개 변수 코 리 화 함수 의 동적 생 성 절 차 를 전달 해 야 합 니 다.다른 함 수 를 호출 하여 코 리 화 할 함수 와 필요 한 매개 변수
    function curry(fn){
        var args = Array.prototype.slice.call(arguments, 1);
        return function () {
            var innerArgs = Array.prototype.slice.call(arguments);
            var finalArgs = args.concat(innerArgs);
            return fn.apply(null, finalArgs)
        }
    }
  • 를 전달 해 야 합 니 다.
  • es5 의 변경 방지 대상 확장 불가 대상
    Objcect.preventExtensions(obj)   //             
    Objcect.isExtensible(obj)         //     bool ,true        ,false     
    밀봉 대상 밀봉 대상 확장 불가,기 존 구성원 의[Configurable]특성 이 false 로 설 정 됩 니 다.이 는 속성 과 방법
    Object.seal(obj)     //          
    Object.isSealed    //     bool ,true        ,false     
    동결 대상 이 얼 어 붙 은 대상 을 삭제 할 수 없 음 을 의미 합 니 다.확장 할 수 없 을 뿐만 아니 라 밀봉
    Object.freeze(obj)         //         
    Objcet.isForzen(obj)    //     bool ,true        ,false     
  • 고급 타 이 머 는 주 자바 script 실행 프로 세 스 를 제외 하고 프로 세 스 가 다음 에 남 을 때 실행 해 야 할 코드 대기 열 이 있 습 니 다.페이지 가 수명 주기 에 따라 코드 는 실행 순서에 따라 대기 열 에 추 가 됩 니 다.타이머 에 대해 기억 해 야 할 가장 중요 한 것 은 지정 한 시간 간격 은 타이머 코드 를 언제 실제 실행 하 는 것 이 아니 라 대기 열 에 추가 하 는 지 를 나타 내 는 것 입 니 다.a.중복 되 는 타이머
      setInterval()                      ,                                    ,                ,         ,javascript     setInterval ,                          ,       1、         。
    b.여러 타이머 간 의 실행 간격 이 예상 보다 작 습 니 다
    //     
    setTimeout(function () {
        //   
        setTimeout(arguments.callee, interval)
    }, interval)
  • 배열 블록
    function chunk(array, process, context) {
        setTimeout( function() {
            var Item = array.shift();
            process(item)
            if (array.length > 0) {
                setTimeout(arguments.callee, 100)
            }
        }, 100)
    }
  • 함수 절 류
    var processor = {
        timeoutId = null,
        //          
        performProcessing: function() {
        //        
    },
    //          
    process: function () {
        clearTimeout(this.timeouId);
        var that = this;
        this.timeoutId = setTimeout(function () {
            that.performProcessing();
        }, 100)
        }
    }
  • 좋은 웹페이지 즐겨찾기