>웹 프론트엔드 >JS 튜토리얼 >프로토타입과 `__proto__`: 실제 차이점은 무엇입니까?

프로토타입과 `__proto__`: 실제 차이점은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-14 15:19:14619검색

Prototype vs. `__proto__`: What's the Real Difference?

프로토타입과 __proto__: 구별의 이해

객체 지향 프로그래밍 영역에서는 프로토타입과 .__proto__의 개념을 이해하는 것이 중요합니다. . 이러한 용어는 동의어로 보일 수 있지만 서로 다른 목적을 제공합니다.

proto는 지정된 객체에 대한 상속 동작을 제공하는 객체인 객체의 프로토타입에 대한 내부 참조를 나타냅니다. 메서드와 속성을 확인하기 위해 조회 체인 중에 활용되는 실제 개체입니다.

반면, 프로토타입은 프로토타입 개체를 가리키는 생성자 함수의 명시적 속성입니다. 생성자 함수를 사용하여 새 개체가 생성되면 새 개체의 __proto__ 속성이 생성자의 프로토타입 값으로 설정됩니다.

이 차이점을 설명하려면 다음을 수행하세요.

var b = new Foo(20);
var c = new Foo(30);

(new Foo).__proto__ === Foo.prototype // true
(new Foo).prototype === undefined // true

여기서 예를 들어, Foo.prototype은 b와 c 모두에 대한 프로토타입 객체입니다. b와 c의 __proto__ 속성은 이 프로토타입 객체를 가리키며, 이를 통해 속성과 메소드를 상속할 수 있습니다.

프로토타입은 읽기-쓰기 가능한 속성인 반면 __proto__는 일반적으로 읽기 전용으로 간주된다는 점에 주목할 필요가 있습니다. __proto__ 속성을 직접 수정하면 예상치 못한 동작이 발생할 수 있습니다.

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

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