javascript 고급:instanceof와 원형 체인 인식
1.1 일반적인 용도: 객체가 구조 함수의 인스턴스인지 여부를 판단합니다.
문법: 대상 instanceof 함수는true를 되돌려주고 아니면false를 되돌려줍니다.
console.log(obj instanceof Object);
1.2 고급 사용법:
하나의 함수의 원형 대상이 실례 대상의 원형 체인에 있는지 판단하다
1.3 사례는 다음과 같습니다.
var arr = [];
console.log(arr instanceof Array); //true
console.log(arr instanceof Object); //true
2 원형 체인
MDN 설명서는 다음과 같습니다.
2.1 .JavaScript는 흔히 원형 기반 언어(prototype-based language)로 묘사된다. 각 대상은 원형을 모델로 하고 원형으로부터 계승하는 방법과 속성을 가진다.
여기에서:
1 객체 호출.prototype 속성, 원형 대상에 접근합니다.조작할 수 있습니다.
2 원형 대상 호출.constructor 속성, 대상에 접근합니다.
3 데모는 다음과 같습니다.
(다음은 문서 내의 객체로 Person 구조 함수를 예로 들어 설명합니다.)
function Person(){
}
Person.prototype.sayName = function(){
console.log(1);
}
var zs = new Person();
zs.sayName();//1
4 다음 그림은 관계식 다이어그램입니다.
아버지(구조함수 원형 대상) 어머니(구조함수) 아들(실례 대상zs)으로 그 사이의 관계를 설명한다.
뜻:
해석 1 var zs = new Person();
구조 함수 Person(어머니), 실례 대상(아들) zs를 창조했다.
풀이2 페르슨.prototype.sayName
Person이 Person을 통과했어요.prototype이 (아버지) '원형 대상' 에 접근하고 함수sayName를 추가했습니다.
해석 3**zs.sayName();//1**
(아들)zs는 부모 두 대상 내의 모든 변수와 방법을 방문할 수 있습니다.
뜻풀이 4 Person.prototype.constructor.prototype.sayName
(아버지) 원형 대상 통과.constructor, 구조 함수 Person (어머니) 에 접근합니다.
2.2 . 원형 대상도 원형을 가지고 방법과 속성을 계승할 수 있다. **, 층층이 이런 식으로 **를 유추할 수 있다.
이러한 관계는 흔히 원형 체인(prototype chain)이라고 불리는데, 왜 한 대상이 다른 대상에 정의된 속성과 방법을 가지고 있는지 설명한다.
관계식은 다음 그림과 같습니다.
설명:
2.1 원형 대상(아버지) 자체도 아들로서 창조될 수 있다.즉, 원형 대상(아버지) 위에도 그의 아버지와 어머니가 있어 그들의 속성을 계승하는 방법으로 사용한다.
2.2 이 층층의 관계를 통해 ** 실례 대상인 ~null**로부터 원형 체인을 구성한다.
3 .원형 체인 사용:
3.1 원형 체인 특유의 규칙에 따라 우리는 보통 대상에 공공 속성을 추가한다.원형 대상에 사유 속성을 추가합니다.
4 객체 찾기 속성에 대한 규칙:
먼저 자신의 몸에서 속성을 찾고, 있으면 바로 되돌아오고, 없으면 원형 체인을 따라 위로 찾는다
전재 대상:https://juejin.im/post/5afd4837f265da0b8455a3bb
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.