자 바스 크 립 트 에서 대상 기술 에 대한 시 뮬 레이 션

4012 단어
머리말
C \ # 와 자바 언어 에서 대상 을 대상 으로 하 는 것 은 유형 적 인 방식 으로 이 루어 진 것 이다. 특히 이 특성 을 계승 하 는 방식 으로 계승 하 는 것 은 강력 한 기능 을 나타 내 고 학습 하기 도 쉽다.JavaScript 는 단순히 대상 을 대상 으로 하 는 언어 가 아니 라 대상 을 바탕 으로 하 는 언어 입 니 다. 대상 의 계승 은 원형 함수 의 형식 으로 계승 되 었 습 니 다. 많은 초보 자 들 이 처음에 접 촉 했 을 때 이해 하지 못 했 지만 JavaScript 와 같은 원형 함수 의 형식 으로 대상 을 대상 으로 하 는 기술 을 실현 하 는 것 은 가능 할 뿐만 아니 라 대상 을 대상 으로 하 는 기술 에 동적 계승 기능 도 제공 합 니 다.본 고 는 주로 자 바스 크 립 트 의 대상 기술 을 토론 하 였 다.
2. 원형 대상 개술
모든 자 바스 크 립 트 대상 은 원형 대상 이 있 고 대상 은 원형 대상 의 모든 속성 을 계승 합 니 다.대상 의 원형 은 이 대상 을 만 드 는 구조 함수 에 의 해 정 의 됩 니 다.JavaScript 의 모든 함수 에는 prototype 이라는 속성 이 있 습 니 다. 이 속성 은 원형 대상 을 참조 합 니 다. 이 원형 대상 이 초기 화 될 때 는 constructor 속성 만 이 원형 대상 을 만 드 는 대상 을 참조 합 니 다.JavaScript 는 Class 정의 클래스 의 개념 이 없 으 면 구조 함 수 는 클래스 를 정의 하고 클래스 의 속성 을 초기 화 합 니 다. 각 유형의 구성원 은 원형 대상 에서 같은 속성 을 계승 합 니 다. 즉, 원형 대상 은 클래스 의 인 스 턴 스 공유 속성 과 방법 을 제공 하여 메모 리 를 절약 합 니 다.
대상 의 속성 을 읽 을 때 JavaScript 는 대상 에서 먼저 찾 습 니 다. 찾 지 못 하면 원형 대상 에서 이 속성 (또는 방법) 을 찾 을 수 있 습 니 다. 따라서 특히 방법 에 대해 서 는 원형 대상 에 저장 하여 공유 하기 쉽 고 메모리 절약 의 목적 을 달성 하 는 것 이 좋 습 니 다. 또한 원형 대상 은 강력 한 기능 이 있 습 니 다.즉, 구조 함 수 를 통 해 일부 대상 을 예화 한 후에 구조 함수 의 원형 대상 에 속성 과 방법 을 추가 하면 원래 예화 된 대상 인 스 턴 스 는 이러한 증가 하 는 속성 과 방법 을 계승 할 것 이다.
3. 대상 속성, 대상 방법, 유형 속성, 유형 방법
대상 마다 자신 만 의 인 스 턴 스 속성 과 인 스 턴 스 방법의 사본 이 있 습 니 다. 5 개 대상 을 예화 하면 5 개 대상 의 인 스 턴 스 속성 과 인 스 턴 스 방법 사본 이 있 습 니 다.This 키 워드 는 인 스 턴 스 대상 을 참조 합 니 다. 즉, 인 스 턴 스 방법 을 조작 한 사람 이 this 는 누 구 를 참조 합 니 다.인 스 턴 스 대상 의 속성 에 접근 하면 this 는 이 인 스 턴 스 대상 을 참조 합 니 다.
클래스 방법 과 클래스 속성 은 하나의 사본 만 있 습 니 다. 클래스 방법 을 호출 할 때 클래스 의 이름 을 참조 해 야 합 니 다. 예 를 들 어 Date. setHours ();
다음은 하나의 프로그램 으로 인 스 턴 스 속성, 인 스 턴 스 방법, 클래스 속성, 클래스 방법 을 표현 합 니 다.
 
  
 function Mobile(kind,brand) {
      this.kind=kind;// , GSM/CDMA
      this.brand=brand;// ,this
  }
  
  /**//*
   
    。
   
   */
   // ,
  Mobile.prototype.dial = function(phoneNo) {
      return phoneNo;
  };
  
  
  /**//*
    , , ,
    , , this, 。
   */
  //
  Mobile.turnOn=function() {
     return "The power of mobile is on";
  }
  Mobile.turnOff=function() {
     return "The power of mobile is off";
  }
  

  
/ / 클래스 속성, 이렇게 하면 그들 은 상수 로 사용 할 수 있 습 니 다. 실제로 그들 은 읽 기만 하 는 것 이 아 닙 니 다.
  Mobile.screenColor=64K;//만약 에 이런 핸드폰 의 화면 색깔 이 모두 64K 컬러 라 고 가정 하면...
자 류 화
   자 바스 크 립 트 는 하위 클래스 화 를 지원 합 니 다. 하위 클래스 의 원형 대상 을 초 클래스 로 예화 하면 됩 니 다. 그러나 이러한 클래스 화 이후 에 문제 가 존재 할 수 있 습 니 다. 초 클래스 인 스 턴 스 화 하위 클래스 의 원형 대상 으로 얻 은 것 이기 때문에 자 바스 크 립 트 가 제공 하 는 constructor 속성 을 지 워 버 리 고 constructor 의 정확성 을 확보 하기 위해 서 입 니 다.다시 지정 해 야 합 니 다. 하위 클래스 화 된 프로그램의 예 는 다음 과 같 습 니 다.
   /*****  하위 화  *****/
/ / 다음은 하위 구조 함수 스마트 폰
function SmartPhone(os)
{
  this.os=os;
}
/ / 모 바 일 대상 을 원형 으로 합 니 다.
/ / 이 는 새로운 종류의 인 스 턴 스 가 Smartphone. prototype 을 계승 한 다 는 것 을 의미 합 니 다.
/ / 후 자 는 Mobile. prototype 에서 물 려 받 았 습 니 다.
/ / Mobile. prototype 은 Object. prototype 에 의 해 계승 되 었 습 니 다.
SmartPhone.prototype=new Mobile(GSM,Nokia);
/ / 하위 클래스 에 새로운 방법 을 추가 하여 이메일 을 보 냅 니 다. 여 기 는 이메일 주소 만 되 돌려 줍 니 다.
SmartPhone.prototype.sendEmail=function(emailAddress) {
  return this.emailAddress
}
/ / 위의 하위 클래스 화 방법 에 약간의 결함 이 있 습 니 다. 우 리 는 Smartphone. prototype 을 우리 가 만 든 대상 으로 명확 하 게 설정 하기 때문에 JS 제공 을 덮어 씁 니 다.
/ / 의 원형 대상 이 고 주어진 Constructor 속성 을 버 렸 습 니 다.이 속성 은 이 대상 을 만 드 는 구조 함 수 를 참조 합 니 다.근 데 스마트 폰 대상 이 통합 됐어 요.
/ / 부모 클래스 의 constructor 는 자신 에 게 이 속성 이 없습니다. 이 문 제 를 해결 할 수 있 는 속성 을 명확 하 게 설정 하고 있 습 니 다.
SmartPhone.prototype.constructor=SmartPhone;
var objSmartPhone=new SmartPhone();//실례 화 서브 클래스

좋은 웹페이지 즐겨찾기