JS 원형 prototype 과proto__용법 실례 분석
먼저 실례 를 하나 봅 시다
function Foo() {
}
var foo = new Foo();
console.log(foo.prototype);// undefined
console.log(foo.__proto__ === Foo.prototype);// true
console.log(Foo.__proto__); [Function]
Foo.__proto__결 과 는 다음 과 같다.
console.log(Foo.prototype);// [object Object]
Foo.prototype 결 과 는 다음 과 같 습 니 다.
console.log(Foo.prototype.prototype);// undefined
실례 설명:1.foo 는 Foo 의 인 스 턴 스 입 니 다.함수 가 아니 기 때문에 prototype 이 없습니다.
Foo 는 Function 의 인 스 턴 스 이 고 Function 은 함수 입 니 다.그의 인 스 턴 스 Foo 도 함수 이기 때문에 그들 은 모두 prototype 을 가지 고 있 습 니 다.이 밖 에 Object Array RegExp 등 도 함수 다.Math 는 함수 가 아 닌 new Object()에 불과 합 니 다.
2.구조 함수 의 prototype 은 기본 적 인 상황 에서 new Object()이 고 constructor 속성 도 추가 되 었 습 니 다.그 러 니까 기본적으로 prototype 이 없고 만 있 습 니 다.proto__라 고 적 었 다.
Object.prototype 을 제외 한 모든 대상 은proto__속성,이후 함수 에 만 prototype 속성 이 있 습 니 다.
대상 을 만 들 때 자동 으로 를 만 듭 니 다.proto__속성,구조 함 수 를 가리 키 는 prototype,이 대상 의 속성 에 접근 할 때 접근proto__중 대응 하 는 속성,즉 구조 함수 prototype 은 이렇게 계승 을 실현 합 니 다.
함 수 를 만 들 때 만 prototype 속성 을 만 들 수 있 습 니 다.위의 계승 방식 을 완성 하기 위해 서 입 니 다.
요약:
<1>일반 대상 이 든 함수 대상 이 든 모두 함 축 된 속성 이 있 습 니 다."proto__ “,이 속성 은 우리 가 흔히 말 하 는 원형(속성)이 고 사실은 Object 유형의 대상 이다.
<2>함수 대상 에 대해 서 는 prototype 의 속성 이 하나 더 있 습 니 다.이 는 구조 함수 로 만 든 일반 대상 의""입 니 다.proto__ “속성 은"new XXXT()."와 같 습 니 다.proto__ ===XXX.prototype"은 true 입 니 다.즉,대상 XXX 에는 가 있 습 니 다.proto__속성 은 하나의 지침 으로 XXX 구조 함수 의 prototype 속성 을 가리킨다.
발췌 인터넷
그림(주황색 화살 표 는 초기 관계 입 니 다.녹색 은 var Fish=new Fu 를 실행 합 니 다.생 성,파란색 은 f1=new Fish()를 실행 합 니 다.)
이렇게 f1 을 통과 할 수 있 습 니 다proto__ Fish.prototype 의 속성 에 접근 합 니 다.Fish 는 Function.prototype 이 정의 하 는 속성 에 접근 할 수 있 습 니 다.모든 대상 이 Object.prototype 의 속성 에 접근 할 수 있 습 니 다.
관심 있 는 친 구 는 온라인 HTML/CSS/JavaScript 코드 실행 도 구 를 사용 할 수 있 습 니 다.
자 바스 크 립 트 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.
본 고 에서 말 한 것 이 여러분 의 자 바스 크 립 트 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JS 판단 수조 네 가지 실현 방법 상세그러면 본고는 주로 몇 가지 판단 방식과 방식 판단의 원리를 바탕으로 문제가 있는지 토론하고자 한다. 예를 들어 html에 여러 개의 iframe 대상이 있으면 instanceof의 검증 결과가 기대에 부합되지 않을...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.