overriding : 다른 무엇보다 더 중요한
오버라이딩
상속받은 부모의 메서드를 가리는 것
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를 오버라이딩한다.
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를 오버라이딩한다.
이렇게 프로토체인 상위 객체의 (동명)프로퍼티가 가려지는 현상을 프로퍼티 새도잉이라고 한다.