자 바스 크 립 트 에서 대상 기술 에 대한 시 뮬 레이 션
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();//실례 화 서브 클래스
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.