프로토타입은 많이 들었던 개념이지만, 두루뭉술한 느낌으로 알고있었다.
프로토타입을 많이 본 곳은 MDN 사이트이다. 배열에 원하는 기능을 수행하는 메서드를 찾기 위해 아래 사진에서 보여지는 것을 많이 보았던 것 같다.
자바스크립트의 프로토타입은 객체의 상속을 구현할 때 사용되어진다.
자바스크립트의 모든 객체는 다른 객체로부터 상속을 받을 수 있고, 프로토타입 체인 이라는 것을 통해 상위 프로토타입 객체로 올라가면서 원하는 프로퍼티나 메서드를 찾는다.
function Person(name, age) {
this.name = name;
this.age = age;
}
Person.prototype.greet = function() {
console.log(`Hello, my name is ${this.name}`);
};
const john = new Person('John', 30);
john.greet(); // "Hello, my name is John"
좀 더 자세히 설명하면,
자바스크립트의 모든 객체는 프로토타입이 있고, __proto__ 속성으로 연결된 속성과 메소드를 탐색한다. 이를 프로토타입 체인이라고 한다. 프로토타입은 객체를 복사하는 것이 아니다. 체인과 연결된 속성과 메소드를 따라 접근할 뿐이다.
john의 프로토타입 체인을 따라가보면 Person의 프로토타입의 greet을 발견할 수 있다.
728x90
'개발 > STUDY' 카테고리의 다른 글
CSR과 SSR (0) | 2024.05.23 |
---|---|
브라우저 동작 방법 (0) | 2024.05.23 |
Callback과 Promise 그리고 async/awail (0) | 2024.05.23 |
렉시컬스코프와 클로저 (0) | 2024.05.22 |
useState를 사용할 때는 왜 const를 쓰는가? (0) | 2024.05.22 |