JaeYeongSong
Xsop의 개발일기
JaeYeongSong
전체 방문자
오늘
어제
  • 분류 전체보기 (41)
    • 💻 Python (17)
      • Python 기초 강의 (6)
      • 비트코인 자동 매매 (7)
      • 크롤링 (3)
      • 알고리즘 (1)
    • ✨ JavaScript (9)
      • Basic (8)
      • Node.js (1)
    • ⭐ HTML (9)
    • 🌟 API (2)
    • 💡 일상 (3)

블로그 메뉴

  • 홈
  • 태그
  • 게시물

공지사항

인기 글

태그

  • 시장가
  • 비트코인 자동매매
  • JavaScript
  • input
  • Slack
  • Web
  • Python
  • 웹
  • 웹 사이트
  • Web page Crawling
  • 지정가
  • slack api
  • 글쓰기
  • upbit api
  • 자료형
  • API
  • 봇
  • HTML
  • 비트코인
  • Crawling
  • 웹 페이지 크롤링
  • upbit
  • 동기
  • 자산 조회
  • 크롤링
  • 기초 문법
  • callback
  • 태그
  • 문자열
  • 비동기

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
JaeYeongSong

Xsop의 개발일기

✨ JavaScript/Basic

[JavaScript] Class 알아보기

2021. 11. 6. 12:20

개념정리

Class : 객체를 만들기 위한 템플릿(function 처럼 중복을 방지하기 위해 태어남)

 

  •  

Point! 객체를 자주 만들기 위해서 형식을 제공해줘서 중복을 방지하기 위한 템플릿

 


Class가 필요한 이유

Code

const firstDeveloper = {
	name: 'Lion',
	age: 22,
	part: 'Back-End',
	programLanguage: ['JavaScript', 'Node.js']
}

const twoDeveloper = {
	name: 'Jane',
	age: 21,
	part: 'Front-End',
	programLanguage: ['JavaScript']
}

...

 

반복되는 객체(여기서는 ~Developer)를 만들 때 코드의 길이가 길어지고, 중복이 많아진다.

(name, age, part 같은 key가 중복!)


Class가 존재하지 않았을 때 (ES5)

Code

// Function으로 Class 생성
function Developer(name, age, part, programLanguage) {
	this.name = name;
  	this.age = age;
	this.part = part;
	this.programLanguage = programLanguage;
}

// Class 사용
const firstDeveloper = new Developer('Lion', 22, 'Back-End', ['JavaScript', 'Node.js']);
const twoDeveloper = new Developer('Jane', 21, 'Front-End', ['JavaScript']);
...

객체를 사용하기 전보다 first, twoDeveloper 객체를 만드는데 걸리는 코드의 길이가 1줄로,
Class를 사용하기 전보다 코드의 길이가 줄어들었다.


Class를 사용하게 되면 좋은점 (ES6)

Code

// Class 생성
class Developer{
	constructor(name, age, part, programLanguage) {
    	this.name = name;
    	this.age = age;
		this.part = part;
		this.programLanguage = programLanguage;
  }
}

// Class 사용
const firstDeveloper = new Developer('Lion', 22, 'Back-End', ['JavaScript', 'Node.js']);
const twoDeveloper = new Developer('Jane', 21, 'Front-End', ['JavaScript']);
...

함수로 Class를 만들기 보다 ES6 버전부터 개발자들이 알아 보기 쉽게
Class라는 선언문이 생겨나게 되어, 최신 문법을 사용하는게 좋다.
자세한 이유는 아래 Part를 한 번 보도록하죠.


Function 대신 Class를 사용해야 하는 이유가 무엇일까?

Code - Function

// Function
// Function으로 Class 생성
function Developer(name, age, part, programLanguage) {
	this.name = name;
  	this.age = age;
	this.part = part;
	this.programLanguage = programLanguage;
}

// Class 상속
const DeveloperPoint = function(name, age, part, programLanguage, point) {
	Developer.apply(this, arguments);
	this.point = point;
}
DeveloperPoint.prototype = Object.create(Developer.prototype);
DeveloperPoint.prototype.constructor = DeveloperPoint; // 상속

// Class 사용
const firstDeveloperPoint = new DeveloperPoint('Lion', 22, 'Back-End', ['JavaScript', 'Node.js'], 7);
const twoDeveloperPoint = new DeveloperPoint('Jane', 21, 'Front-End', ['JavaScript'], 8);
...

Code - Class

// Class
// Class 생성
class Developer {
  constructor(name, age, part, programLanguage) {
    this.name = name;
    this.age = age;
		this.part = part;
		this.programLanguage = programLanguage;
  }
}

// Class 상속
class DeveloperPoint extends Developer {
	constructor(name, age, part, programLanguage, point) {
    super(name, age, part, programLanguage);
		this.point = point;
  }
}

// Class 사용
const firstDeveloperPoint = new DeveloperPoint('Lion', 22, 'Back-End', ['JavaScript', 'Node.js'], 7);
const twoDeveloperPoint = new DeveloperPoint('Jane', 21, 'Front-End', ['JavaScript'], 8);
...

Class를 상속할 때 Function보다 더 쉽게 상속할 수 있다.


저작자표시
    '✨ JavaScript/Basic' 카테고리의 다른 글
    • [JavaScript] async, await (Promise를 간결하고 깔끔하게!)
    • [JavaScript] Promise(프로미스) Callback 지옥을 해결하는 방법!
    • [JavaScript] 화살표 함수(this 바인딩) 알아보기
    • [JavaScript] 변수 선언자 var, let, const 차이점
    JaeYeongSong
    JaeYeongSong
    "I walk slowly, but I never walk backwards. - Abraham Lincoln" "나는 천천히 걷지만 결코 뒤로 걷지 않는다. - 에이브러햄 링컨" #코딩 #Python #JavaScript

    티스토리툴바