학습 노트 2:자바 script 대상 프로그램 디자인 계승 용법 분석

본 고의 실례 는 자 바스 크 립 트 가 대상 을 대상 으로 하 는 프로그램 설계 계승 용법 을 서술 하 였 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
1.상속 에 관 하여:
바 이 두 백과계승 에 대한 해석 은 계승 은 한 대상 이 다른 대상 의 속성 과 방법 을 직접 사용 하 는 것 을 말한다.
(컴퓨터 개념의 계승 에 대한 백과 의 해석 도 너무 간략 하 다)
후계 의 좋 은 점,장점 을 배 워 서 대상 을 대상 으로 하 는 학우 들 이 모두 알 고 있 으 니 군말 하지 않 겠 다.
javascript 의 계승 은 세 가지 가 있 습 니 다.
  • a.구조 함수 계승(유형 식 계승,조합 계승,위조 경전 계승)
  • b.원형 계승
  • c.원형 할당(옮 겨 다 니 며)계승(기생 식 계승)
  • 2.구조 함수 계승
    구조 함수 계승 이란 새로운 대상 을 만 들 고 부류 구조 함 수 를 호출 하여 실현 하 는 계승 이다.
    (지식 점:함수 대상 의 원형 은 constructor 라 는 속성 이 있 습 니 다.constructor 가 실제 가리 키 는 것 은 이 함수 입 니 다)
    
    function person(name){
      this.name = name;
    }
    extend(author, person);
    function extend(subclass, superclass){
     var f= function(){};
     f.prototype = superclass.prototype;//f.prototype.constructor = superclass
     subclass.prototype = new f();//         superclass(),  subclass.prototype.construcor = superclass
     subclass.prototype.constructor = subclass;// subclass                  
    }
    
    
    3.원형 계승
    우 리 는 자 바스 크 립 트 가 한 대상 의 속성 을 인용 할 때 먼저 이 대상 에 게 이 속성 이 있 는 지,없 으 면 이 대상 의 원형 에 이 속성 이 있 는 지 계속 볼 것 임 을 알 고 있 습 니 다.
    
    var person ={}
    var author = clone(person);
    function clone(obj){
     function F(){};
     F.prototype = obj;
     return new F;
    }
    
    
    clone 함수 의 역할 은 부모 클래스 의 모든 구성원 을 새로운 대상 의 prototype 에 주 고 새로운 대상 prototype 의 구성원 이 되 는 것 입 니 다.따라서 하위 클래스 는 하나의 부모 클래스 속성 을 인용 할 때 prototype 에서 찾 을 수 있 습 니 다.그러나 이러한 방식 으로 계승 하 는 것 은 모든 복 제 된 대상 이 모든 속성 과 방법 을 공유 하 는 유일한 인 스 턴 스 입 니 다(모두 원형 을 통 해 읽 기 때 문 입 니 다).복 제 된 대상 의 속성 과 방법 을 직접 설정 해 야 상황 이 달라 집 니 다.
    4.원형 할당(옮 겨 다 니 기)계승
    이러한 할당 이 원형 할당 보다 좋 은 점 은 계승 범 위 를 통제 하 는 데 있다.
    
    var person = {};
    augment(author, person);
    
    //      ,               
    function augment(receivingclass, givingclass){
      if(arguments[2]){
       for(var i=2;i<arguments.length;i++){
        receivingclass.prototype[arguments[i]] = givingclass.prototype[arguments[i]];
       }
      }
      else{
       for(methodname in givingclass.prototype){
        receivingclass.prototype[methodname] = givingclass.prototype[methodname];
       }
      }
    }
    
    
    이러한 방식 은 var obj 와 같은 정의 대상 에 비교적 적용 되 며 함수 로 정의 하 는 대상 이 아 닙 니 다.함수 로 정의 하 는 대상 을 사용 하 는 동시에 계승 하 는 구성원 도 지정 해 야 합 니 다.constructor 를 잊 지 마 세 요.
    관심 있 는 친 구 는 온라인 HTML/CSS/JavaScript 코드 실행 도 구 를 사용 할 수 있 습 니 다.http://tools.jb51.net/code/HtmlJsRun상기 코드 실행 효 과 를 테스트 할 수 있 습 니 다.
    자 바스 크 립 트 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있 습 니 다.,,,,,javascript 대상 입문 강좌,JavaScript 오류 및 디 버 깅 기술 요약,JavaScript 데이터 구조 와 알고리즘 기술 총화JavaScript 스 트 리밍 알고리즘 및 기술 총화.
    본 고 에서 말 한 것 이 여러분 의 자 바스 크 립 트 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

    좋은 웹페이지 즐겨찾기