[ JavaScript ] 자바스크립트 기본 문법 | 상속(inheritance)이란 무엇인가?

2021. 2. 4. 09:02·Archive/Develop
728x90
반응형

이미지 출처 :   https://commons.wikimedia.org/wiki/File:JavaScript-logo.png

 

 

 

 

 

해당 포스팅은 생활코딩의 이고잉 님의 강의를 기반으로 개인 공부용으로 정리한 포스팅임을 미리 알립니다.

 

 

 


 

자바스크립트 기본 문법  ::  상속

 

 

객체는 연관된 로직들로 이루어진 작은 프로그램이라고 할 수 있습니다.

 

상속(inheritance)은 객체의 로직을 그대로 물려 받는 또 다른 객체를 만들 수 있는 기능을 의미합니다.

 

 

단순히 물려받는 것이라면 의미가 없고,

기존의 로직을 수정하고 변경해서 파생된 새로운 객체를 만들 수 있게 해주는 것이 상속의 역할입니다.

 

 

 

지난 포스팅에서 사용했던 코드를 들고와 보도록 하겠습니다.

 

 

 

function Person(name){
    this.name = name;
    this.introduce = function(){
        return 'My name is '+this.name; 
    }   
}
var p1 = new Person('test');
console.log(p1.introduce());

 

 

 

 

 

 

위의 예제 코드는 아래와 같이 바꿀 수 있습니다.

 

 

 

function Person(name){
    this.name = name;
}
Person.prototype.name=null;
Person.prototype.introduce = function(){
    return 'My name is '+this.name; 
}
var p1 = new Person('test');
console.log(p1.introduce());

 

 

prototype 은 다음 포스팅에서 더욱 자세하게 다룰 예정이고,

 

이번 포스팅에서는 상속을 자바스크립트에서 어떻게 사용하는지 눈으로 익히는 것이 목표입니다.

 

 

 

 

 

function Person(name){
    this.name = name;
}
Person.prototype.name=null;
Person.prototype.introduce = function(){
    return 'My name is '+this.name; 
}
 
function Programmer(name){
    this.name = name;
}
Programmer.prototype = new Person();
 
var p1 = new Programmer('test');
console.log(p1.introduce());

 

 

 

 

 

 

Programmer이라는 생성자를 만들고, 이 생성자의 prototype과 Person의 객체를 연결했더니

Programmer 객체도 메소드 introduce를 사용할 수 있게 된 것을 확인할 수 있습니다.

 

 

이것이 바로 Programmer가 Person의 기능을 상속하고 있는 것입니다.

 

단순히 똑같은 기능을 갖게 되는 것이라면 상속의 의의는 사라질 것이고,

부모의 기능을 계승 발전할 수 있는 것이 상속의 가치입니다.

 

 

 

 

그렇다면 이제, 새로운 기능을 추가하는 것을 예제로 알아보겠습니다.

 

 

 

 

function Person(name){
    this.name = name;
}
Person.prototype.name=null;
Person.prototype.introduce = function(){
    return 'My name is '+this.name; 
}
 
function Programmer(name){
    this.name = name;
}
Programmer.prototype = new Person();
Programmer.prototype.coding = function(){
    return "hello world";
}
 
var p1 = new Programmer('test');
console.log(p1.introduce());
console.log(p1.coding());

 

 

13번째 행과 같이 객체에 새로운 기능을 추가할 수 있습니다.

 

 

실행한 결과는 아래 그림과 같습니다.

 

 

 

 

 

 

Programmer는 Person의 기능을 가지고 있으면서

Person이 가지고 있지 않은 기능인 메소드 coding을 가지고 있게 되는 것입니다.

 

 

 

 

 

 

 

 

 

 

 

728x90
반응형

'Archive > Develop' 카테고리의 다른 글

[ JavaScript ] 자바스크립트 기본 문법 | 표준 내장 객체란?  (0) 2021.02.04
[ Javascript ] 자바스크립트 기본 문법 | prototype & prototype chain  (0) 2021.02.04
[ JavaScript ] 자바스크립트 기본 문법 | 함수와 this | this 가 가리키는 것들의 종류  (0) 2021.02.04
[ JavaScript ] 자바스크립트 기본 문법 | 전역 객체(Global object)란? | window 객체  (0) 2021.02.04
[ JavaScript ] 자바스크립트 기본 문법 | 생성자와 new  (0) 2021.02.04
'Archive/Develop' 카테고리의 다른 글
  • [ JavaScript ] 자바스크립트 기본 문법 | 표준 내장 객체란?
  • [ Javascript ] 자바스크립트 기본 문법 | prototype & prototype chain
  • [ JavaScript ] 자바스크립트 기본 문법 | 함수와 this | this 가 가리키는 것들의 종류
  • [ JavaScript ] 자바스크립트 기본 문법 | 전역 객체(Global object)란? | window 객체
코뮤(commu)
코뮤(commu)
코딩으로 커뮤니케이션하는 코뮤입니다 😎
  • 코뮤(commu)
    코뮤(COMMU)
    코뮤(commu)
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Archive
        • Hacking
        • Develop
        • ETC
      • Algorithm
      • DB&Infra
      • ETC
      • Node
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • IT지식보따리
    • IT가 맛있다
    • IT 천재
  • 공지사항

    • 배고픕니다
  • 인기 글

  • 태그

    파이썬 알고리즘
    코드업
    Codeup
    백준
    파이썬 기초
    보안뉴스
    백준 파이썬
    파이썬 백준
    oracle db
    자바스크립트 API
    자바스크립트
    오라클
    파이썬
    Django
    코드업 기초
    C++
    Python
    파이썬 기초 문제
    자바스크립트 객체
    코드업 파이썬 기초 100제
    카카오 100일 프로젝트
    백준 풀이
    Oracle
    장고
    docker
    비박스
    Git
    백준 문제풀이
    javascript
    파이썬 문제
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
코뮤(commu)
[ JavaScript ] 자바스크립트 기본 문법 | 상속(inheritance)이란 무엇인가?
상단으로

티스토리툴바