본문 바로가기
JavaScript

프로토타입

by 융디's 2024. 4. 21.
728x90
프로토타입

프로토타입

@2024.04.03

프로토타입

💡
모든 객체는 프로토타입을 가지며, 이는 객체의 기본적인 속성과 메서드를 재정의한다.


@기본 형식


.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 추가
      • persion1person2 객체는 이 프로토타입을 상속 받는다.
      • 두 객체가 greet()을 호출할때 해당 객체의 프로토타입 체인을 따라 메서드를 찾는다.
      • person1person2 객체에는 없으므로, 자바스크립트는 객체의 프로토타입인 Person.prototype에서 greet()을 찾는다.

728x90

'JavaScript' 카테고리의 다른 글

비동기식 처리 및 이벤트 루프  (1) 2024.04.21
클래스  (0) 2024.04.21
객체 생성자  (0) 2024.04.21
단축 평가  (0) 2024.04.21
배열 내장 함수  (0) 2024.04.21