[ 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 천재
  • 공지사항

    • 배고픕니다
  • 인기 글

  • 태그

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

  • 최근 글

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

티스토리툴바