연습장

js 에서 오버로딩이란? 본문

기타

js 에서 오버로딩이란?

js0616 2024. 7. 24. 20:39

객체지향 프로그래밍은 실세계에 존재하고 개념이나 사물을 소프트웨어의 세계에서 표현하기 위해, 객체의 핵심적인 개념 또는 기능만을 추상화(abstraction)를 통해 객체로 만들고,  객체들 간의 상호작용을 통해 로직을 구성하는 프로그래밍 방법입니다.

클래스에서 인스턴스를 생성하는데, 자식에서 정의하지 않아도 기능을 상속받아 사용할 수도있고,  상속받은 메소드를 오버로딩 오버라이딩을 하는 다형성을 가지기도 합니다.

 
class Animal {
    void makeSound() {
        System.out.println("Animal makes a sound");
    }
}

class Dog extends Animal {
    @Override
    void makeSound() {
        System.out.println("Dog barks");
    }
}

 

 

하지만 JavaScript에서는 같은 이름의 함수에 대해 매개변수의 타입이나 개수가 다른 경우에는 나중에 정의된 함수가 이전의 함수를 덮어쓰게 됩니다. 즉, 오버로딩이 아니라 함수 정의가 덮어쓰기(overwriting)되는 형태가 됩니다.

function add(x, y) {
    return x + y;
  }
 
  function add(x, y, z) {
    return x + y + z;
  }
 
  console.log(add(1, 2));      // 출력: NaN (Not a Number)
  console.log(add(1, 2, 3));   // 출력: 6
 

 

 

Overwriting 과  Overriding 

둘 다 메서드의 덮어쓰기를 의미하지만, Overwriting은 같은 클래스 내에서나 상속과 무관하게 메서드를 중복 정의하는 개념을 포괄하며, Overriding은 상속 관계에서 부모 클래스의 메서드를 자식 클래스에서 다시 정의하여 동작을 변경하거나 확장하는 것을 의미합니다.

'기타' 카테고리의 다른 글

렌더링 방식 (SSR,CSR, SPA, MPA)  (0) 2024.07.25
HTTP 요청  (0) 2024.07.25
Axios 란?  (0) 2024.07.24
HTTP 클라이언트/서버 라이브러리란?  (0) 2024.07.24
01. 면접 대비  (0) 2024.07.24