오버라이딩

skyblue·2023년 5월 1일
0

JavaScript

목록 보기
1/2

overriding : 다른 무엇보다 더 중요한

오버라이딩
상속받은 부모의 메서드를 가리는 것

1 인스턴스

class Fruit {
  say() {
    console.log('Fruit')
  }
}

const apple = new Fruit()
apple.say() // Fruit

apple.say = function() {
  console.log('apple')
}
apple.say() // apple

Fruit 클래스를 정의하고, 인스턴스를 만들었다.
인스턴스에 같은 이름의 메서드를 추가하면 Fruit.say를 오버라이딩한다.

2 클래스 상속

class Fruit {
  say() {
    console.log('Fruit')
  }
}
class Apple extends Fruit {
  say() {
    console.log('Apple')
  }
}
const apple = new Apple()
apple.say() // Apple

Fruit 클래스를 상속받는 Apple 클래스에 같은 이름의 메서드를 추가하면
마찬가지로, Fruit.say를 오버라이딩한다.

이렇게 프로토체인 상위 객체의 (동명)프로퍼티가 가려지는 현상을 프로퍼티 새도잉이라고 한다.

0개의 댓글