원형 객체 및 상속

1593 단어
본고는 가장 짧은 언어로 이 땅의 지식점을 총결하고자 한다
좋아요!시작!

(1) 원형 대상


먼저 코드를 보십시오.
function Peroson(){
    
}

Person.prototype.name = 'Jack';

var person1 = new Person();
person1.name

var person2 = new Person();
person2.name

Person 함수를 만들면 기본적으로prototype 속성이 있습니다. 이 속성은 함수의 원형 대상인 Person을 가리킵니다.prototype
기본적으로 모든 원형 대상은 constructor (구조 함수) 속성을 가지고 있으며,prototype 속성이 있는 함수의 바늘인 Person을 가리킨다.prototype.constructor ==> Person
원형 대상에서 constructor 속성을 제외하고 다른 방법은 Object에서 계승한 것이다
새로운 실례를 만들면, 이 실례 내부에 프로토 속성이 있고, 구조 함수의 원형 대상만 가리킨다.즉 페르슨.prototype
명확한 것은 실례의proto 연결은 실례와 구조 함수의 원형 대상 사이에 존재하는 것이지 실례와 구조 함수 사이에 존재하는 것이 아니다
인스턴스가 함수의 인스턴스인지 여부를 결정합니다.
Perosn.prototype.isPrototypeOf(person1)

만약 실례의 속성이 원형의 속성과 동명이라면 실례의 속성은 원형의 속성을 차단하지만 다시 쓰지 않습니다.

(2) 상속


원리: 원형을 이용하여 한 인용 유형이 다른 인용 유형의 속성과 방법을 계승하도록 한다. 구체적인 방법은 원형의 대상을 계승해야 하는 구조 함수의 실례와 같게 한다.
예:
function SuperType(){
    this.property = true;
}

SuperType.prototype.getSuperValue = function(){
    return this.property;
}

function SubType(){
    this.subproperty = false;
}

//     SuperType
SubType.prototype = new SuperType();

SubType.prototype.getSubValue = function(){
    return this.subproperty;
}

var instance = new SubType();

instance.getSuperValue()   // true

실현의 본질은 원형 대상을 다시 쓰고 새로운 유형의 실례를 대체하는 것이다
원형 체인을 실현함으로써 본질적으로 원형 검색 메커니즘을 확장시켰다
원형과 실례 간의 관계를 확정하다
(1) instance instanceof Object

(2) SubType.prototype.isPrototypeOf(instance)

좋은 웹페이지 즐겨찾기