[javascript] 객체의 프로토타입 체인
자바스크립트에서 객체는 다른 객체의 프로퍼티를 상속받을 수 있습니다. 이를 프로토타입 체인이라고 합니다. 모든 객체는 다른 객체로부터 상속받으며, 이는 프로토타입이라 불리는 특수 객체와 관련이 있습니다.
프로토타입
모든 객체는 자신의 프로토타입을 가지고 있습니다. 자바스크립트에서는 객체를 생성할 때 프로토타입을 지정할 수 있으며, 이는 Object.create()
나 class
를 통해 수행할 수 있습니다.
let parent = {
name: "Parent",
greet: function() {
return "Hello, I am " + this.name;
}
};
let child = Object.create(parent);
child.name = "Child";
console.log(child.greet()); // 출력: "Hello, I am Child"
위 코드에서 child
객체는 parent
객체를 프로토타입으로 상속받았습니다.
프로토타입 체인
객체에서 프로퍼티나 메서드에 접근하려고 할 때, 해당 객체에 해당 프로퍼티나 메서드가 없는 경우 프로토타입 체인이 활용됩니다. 자바스크립트는 해당 객체의 프로토타입에서 찾지 못한 프로퍼티나 메서드를 상위 프로토타입으로 이동하여 검색합니다. 이 과정은 해당 객체의 상위 프로토타입에도 해당 프로퍼티나 메서드가 없을 때까지 계속됩니다.
console.log(child.toString()); // 출력: "[object Object]"
위 코드에서 child
객체에 toString()
메서드가 없지만, 해당 메서드는 child
객체의 프로토타입 체인 상위인 Object
객체에서 찾을 수 있습니다.
프로토타입 체인은 자바스크립트의 객체 지향 프로그래밍에서 중요한 개념이며, 이를 이해하면 객체 간의 관계를 효과적으로 이해하고 활용할 수 있습니다.
자세한 정보는 MDN web docs에서 확인할 수 있습니다.