시스템아 미안해

Chapter 4 - Item 31. Object.getPrototypeOf를 __proto__ 대신 사용하라 본문

책/Effective JavaScript

Chapter 4 - Item 31. Object.getPrototypeOf를 __proto__ 대신 사용하라

if else 2025. 8. 10. 18:53

 

객체의 프로토타입을 읽거나 바꾸는 데 __proto__를 쓰는 것은 비표준 방식이었고,

오래된 브라우저 호환을 위한 임시 수단이었다.

 

표준적이고 안전한 방법은 다음과 같다.

  • 프로토타입 읽기: Object.getPrototypeOf(obj)
  • 프로토타입 변경: Object.setPrototypeOf(obj, newProto)
  • 새 객체 생성 시 지정: Object.create(proto)

 

예시)

// 안전한 프로토타입 접근
const proto = Object.getPrototypeOf(someObj);

// 안전한 프로토타입 변경
Object.setPrototypeOf(someObj, anotherProto);

// 프로토타입을 지정하며 새 객체 만들기
const obj = Object.create(proto);

 

 

ES6이후, __proto__가 표준에 포함되긴 했지만, 여전히 성능과 유지보수 면에서 권장되지 않는다.