> 웹 프론트엔드 > JS 튜토리얼 > JavaScript의 생성자와 프로토타입 체인 간의 관계 소개

JavaScript의 생성자와 프로토타입 체인 간의 관계 소개

不言
풀어 주다: 2019-02-23 17:04:28
앞으로
2305명이 탐색했습니다.

이 글은 JavaScript의 생성자와 프로토타입 체인의 관계에 대해 소개합니다. 필요한 친구들이 참고할 수 있기를 바랍니다.

Javascript에는 클래스 개념이 없습니다. 클래스 개념은 생성자와 프로토타입 체인을 통해 구현됩니다.

1. 생성자: 객체를 생성할 때 초기화 객체는 항상 새 키와 함께 나타납니다.

생성자는 다음과 같은 특징을 가지고 있습니다.
1. 생성자에서 이것은 현재 인스턴스 객체를 가리킵니다.
2. new 키워드를 사용하여 현재 개체를 인스턴스화합니다.
3. 일반 함수를 구별하기 위해 생성자의 첫 글자를 대문자로 표시합니다.
4. 인스턴스 객체는 생성자의 속성과 메서드를 상속할 수 있습니다. 그러나 동일한 개체의 인스턴스 간에 속성을 공유할 수는 없습니다.

2. 프로토타입(prototype): 객체의 속성 상속을 구현한 객체입니다. 자바스크립트의 객체는 proto를 통해 프로토타입 객체를 가리키며, 이는 Object.__proto__

3을 통해 액세스할 수 있습니다. 생성자와 프로토타입과의 연결:

   <script>
   function  Demo(){
            
     }
     var demo = new Demo()
     var  data= demo.prototype = function(){

     }
    
     console.log(demo.__proto__)
     console.log(data.constructor )
     console.log(data.prototype.__proto__)
     console.log(demo.constructor.prototype)
     console.log(demo.constructor)
    输出:
    {constructor: ƒ}constructor: ƒ Demo()__proto__: Object
    ƒ Function() { [native code] }
    {constructor: ƒ, __defineGetter__: ƒ, __defineSetter__: ƒ, hasOwnProperty: ƒ, __lookupGetter__: ƒ, …}
    {constructor: ƒ}
    ƒ Demo(){    }
</script>
로그인 후 복사

위의 출력 결과에서 볼 수 있듯이:

__proto__ 생성자는 프로토타입 객체를 가리킵니다.
프로토타입의 생성자는 생성자를 가리킵니다.
프로토타입의 프로토타입.__proto__는 Object.__proto__와 같습니다.
인스턴스의 constructor.prototype은 프로토타입을 가리킵니다. 인스턴스가 생성자를 가리킵니다.

참조 범례:

![1460000018 155881] [1]

위 내용은 JavaScript의 생성자와 프로토타입 체인 간의 관계 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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