javascript 고급:instanceof와 원형 체인 인식

2236 단어
1 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

좋은 웹페이지 즐겨찾기