JS 상속 Notes_js 객체 지향

WBOY
풀어 주다: 2016-05-16 18:04:37
원래의
1096명이 탐색했습니다.

JS 상속
자바스크립트에는 클래스 개념이 없고, 클래스와 관련된 상속 개념도 있을 수 없지만 특수 구문을 통해 객체지향 언어에서 상속을 시뮬레이션할 수 있습니다

.
JS에서 상속을 시뮬레이션하는 방법은 여러 가지가 있는데, 그중 기생 조합 모드는 비교적 쉽고 간단한 시뮬레이션 상속 모드입니다.

상속을 시뮬레이션하기 위해 기생 조합 모드의 사용을 소개하겠습니다.
JS 상속에는 속성 상속과 메서드 상속이 포함되며, 이는 서로 다른 메서드를 통해 구현됩니다.
1 속성 상속
속성 상속은 함수의 실행 환경을 변경하여 이루어집니다. 함수의 실행 환경을 변경하려면 두 가지

메서드(call() 및 Apply())를 사용하면 됩니다.
먼저 Animal "클래스"를 만듭니다(JS에는 클래스 개념이 없기 때문에 여기서는 시뮬레이션일 뿐이며 실제로는

함수 함수 개체입니다).

코드 복사 코드는 다음과 같습니다.

함수 동물(이름){
this.name =name
 }

다른 Lion "클래스"를 만들고 Animal에서 "상속"
코드 복사 코드는 다음과 같습니다.

Function Lion(){
Animal.apply(this, ["Lion"])
}

여기에서는 Animal의 실행 환경을 Lion이 호출될 때의 실행 환경으로 변경하기 위해 Animal의 Apply 메소드를 사용합니다.
라이온의 "클래스"를 사용하려면 일반적으로 새로운 라이온이 필요하다는 점을 여기서 설명하고 싶습니다. 예:
 var l = new Lion();
위 코드에서 new 키워드는 다음 작업을 완료했습니다.
1) 준비할 힙 공간을 엽니다. Lion 객체를 저장하려면
2) Lion 객체 자체의 실행 환경을 수정하여 Lion 함수의 이것이 Lion 함수 객체 자체를 가리키도록 합니다.
3) Lion "클래스"의 "생성자"를 호출하여 Lion 객체를 생성합니다.
4) Lion 함수 객체의 힙 주소를 변수 l에 할당합니다. 이때 l은 Lion 함수를 가리킵니다. object
그래서 새 키워드 다음에는 Animal.apply(this, ["Lion"])의 this가 이미 Lion 함수 개체 자체를 가리키고 있으므로

이 코드는 Animal 함수의 실행 환경을 변경합니다. to Lion 함수에서는 다음 코드와 동일합니다.
코드 복사 코드는 다음과 같습니다.

 사자( ){
함수동물(이름){
this.name=name;
}
}

이때, 이것은 이미 Lion 함수 객체이므로 위의 단락 코드는
코드 복사 와 동일합니다. 코드는 다음과 같습니다. :

Function Lion(){
  this.name=name;
 }

이것은 Lion 함수 객체에 name 속성을 추가합니다. Animal 함수에서 상속된 Lion 함수의 효과를 시뮬레이션합니다.
2 메소드 상속
JS의 모든 "클래스"(예: 함수, 함수 객체가 아님)에는 프로토타입 속성이 있습니다. 프로토타입은

함수의 프로토타입을 나타내며 클래스 A 컬렉션도 나타냅니다. 멤버(보통 메서드 모음) 함수의 프로토타입 속성을 통해

메서드의 상속을 구현할 수 있습니다.
또한 먼저 Animal "클래스"를 만듭니다.
코드 복사 코드는 다음과 같습니다.

함수 Animal(이름){
this.name=name;
 }

Animal 프로토타입에 eat 메소드 추가:
코드 복사 코드는 다음과 같습니다.

 Animal.prototype.eat=function(){
 alter(" 먹을 수 있어요!~") ;
 }

사자 "클래스"를 생성하고 동물 "클래스" 속성 상속 완료
코드 복사 코드는 다음과 같습니다.

Function Lion(){
Animal.apply(this, ["Lion"] );
 }

다음 코드에 주목하세요.
Lion.prototype=new Animal(); 메서드 상속이 완료됩니다.
이렇게 하면 Lion의 프로토타입에 Animal 함수 객체가 저장됩니다. , Lion은 Animal의 Contains 메소드입니다(실제로

에는 속성도 포함되어 있습니다). 이것은 Animal로부터 Lion 기능의 상속을 시뮬레이션합니다.
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿