>웹 프론트엔드 >JS 튜토리얼 >JavaScript의 `.prototype`과 `.__proto__`의 차이점은 무엇입니까?

JavaScript의 `.prototype`과 `.__proto__`의 차이점은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-18 04:54:10298검색

What's the Difference Between JavaScript's `.prototype` and `.__proto__`?

.prototype과 .__proto__의 차이점 이해

JavaScript 영역에서 객체는 상속과 프로토타입 체인을 통해 서로 상호 작용합니다. 이 상속 메커니즘에서 중추적인 역할을 하는 두 가지 중요한 개념은 .prototype과 .__proto__입니다. 비슷해 보이지만 이러한 속성은 서로 다른 기능을 제공합니다.

.prototype

.prototype은 새 객체를 생성하기 위한 템플릿 역할을 하는 생성자 함수의 속성입니다. new를 사용하여 생성자 함수를 인스턴스화하면 결과 객체에는 생성자 함수의 .prototype 객체를 가리키는 .__proto__ 속성이 있습니다. 이 .__proto__ 객체에는 새로 생성된 객체가 상속하는 속성과 메서드가 포함되어 있습니다.

.__proto__

.__proto__는 프로토타입 객체를 참조하는 객체의 속성입니다. 객체가 생성된 곳입니다. 이를 통해 객체는 프로토타입에 정의된 속성과 메서드에 액세스할 수 있습니다. .__proto__는 상속 체인에서 중요한 역할을 하며 객체가 상위 객체로부터 속성과 메서드를 상속받을 수 있도록 합니다.

주요 차이점

.prototype과 .prototype의 주요 차이점 .__proto__는 그들의 역할:

  • .prototype: 새 개체를 만드는 데 사용되는 템플릿을 제공합니다.
  • .__proto__: 현재 객체가 생성되었습니다.

또한 .prototype은 .__proto__는 개별 개체의 속성인 반면, .__proto__는 개별 객체의 속성입니다.

실제 예

다음 코드를 고려하세요.

function Foo(value) { this.value = value; }
Foo.prototype.getValue = function() { return this.value; };
var b = new Foo(20);
var c = new Foo(30);

이 예에서 .prototype은 Foo 생성자 함수와 연결됩니다. new Foo로 생성된 객체가 상속할 수 있는 getValue 메서드를 정의합니다. .__proto__는 Foo.prototype 객체를 참조하는 b와 c의 속성입니다. 이 .__proto__ 참조를 통해 b와 c는 상속된 getValue 메서드에 액세스할 수 있습니다.

결론

.prototype 및 .__proto__은 JavaScript 상속의 필수 개념입니다. JavaScript의 효과적인 객체 지향 프로그래밍을 위해서는 각 기능의 고유한 기능과 서로 상호 작용하는 방식을 이해하는 것이 중요합니다.

위 내용은 JavaScript의 `.prototype`과 `.__proto__`의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.