728x90
프로토타입
@2024.04.03
프로토타입
💡
모든 객체는 프로토타입을 가지며, 이는 객체의 기본적인 속성과 메서드를 재정의한다.
@기본 형식
.prototype.[원하는 키] = 코드 입력
@기본 형식
.prototype.[원하는 키] = 코드 입력
- 객체 지향 프로그래밍에서 상속을 구현하는데 중요한 역할
- 객체가 특정 속성이나 메서드를 찾을 때, 해당 객체의 프로토타입 체인을 따라 올라가면서 찾는다.
- 예시
- 어떤 객체의 속성에 접근하려고할 때 해당 객체의 찾는 속성이 없을때
- 이 객체의 프로토타입을 확인하고, 그 프로토 타입에 없으면 더 상위 프로토타입에 찾아서 확인하며 찾을 때까지 반복
- 함수가 생성한 객체들의 프로토 타입을 지정할 수 있다.
- 예시
// 생성자 함수 정의 function Person(name) { this.name = name; } // Person의 프로토타입에 great()메서드 추가 Person.prototype.greet = function() { console.log('안녕하세요, ' + this.name + '님!'); }; // 객체 생성 var person1 = new Person('John'); var person2 = new Person('Jane'); // greet 메서드 호출 person1.greet(); // 안녕하세요, John님! person2.greet(); // 안녕하세요, Jane님!
- Person 프로토타입에 greet 추가
- persion1과 person2 객체는 이 프로토타입을 상속 받는다.
- 두 객체가 greet()을 호출할때 해당 객체의 프로토타입 체인을 따라 메서드를 찾는다.
- person1과 person2 객체에는 없으므로, 자바스크립트는 객체의 프로토타입인 Person.prototype에서 greet()을 찾는다.
- Person 프로토타입에 greet 추가
728x90
'JavaScript' 카테고리의 다른 글
비동기식 처리 및 이벤트 루프 (1) | 2024.04.21 |
---|---|
클래스 (0) | 2024.04.21 |
객체 생성자 (0) | 2024.04.21 |
단축 평가 (0) | 2024.04.21 |
배열 내장 함수 (0) | 2024.04.21 |