티스토리 뷰

개발/자바스크립트

클래스

네스사 2023. 3. 15. 11:41

 

 

클래스와 인스턴스란?


  • 클래스는 연관된 데이터의 집합을 의미한다. 일종의 설계도라고도 설명할 수 있다. 
  • 클래스는 실질적인 값을 갖지 않고, 어떤 속성이 있고, 함수가 어떻게 작동하는지만 구현된다.  
  • 이 설계도로 생성한 결과물이 인스턴스이다. 인스턴스는 실제 값을 가지고 있고, 이를 클래스에 넣어서 속성값을 정하고 매개변수로 함수를 실행할 수 있다. 
  • 같은 클래스를 통해 다른 인스턴스들을 생성할 때, 각각의 인스턴스에 독립된 객체가 클래스를 토대로 만들어진다. 즉, 한 인스턴스에서의 변동이 다른 인스턴스에 영향을 미치지 않는다.   

 

 

클래스와 인스턴스 정의


  • 인스턴스의 경우. 사용할 클래스 앞에 new키워드를 붙이고, 클래스에 값을 인자로 주고 변수에 할당한다.
let cat=new Animal(4,"야옹"); //Animal이라는 클래스로 cat이라는 인스턴스 생성. 고양이의 발 갯수와 울음소리를 전달.
  • 클래스에는 클래스가 생성시 작동하는 생성자 함수라는 것이 존재한다. 보통 this를 사용하여 인스턴스의 속성을 정의할 때 사용한다.
  • 클래스를 정의할때, ES5와6에서 다소 차이가 존재한다. ES5에서는 prototype을 통해 클래스를 만들었지만, ES6에서는 class문법 통해 만든다. 생성자도 ES6에서 constructor를 통해 따로 구분되게 만들 수 있게 되었다. 

ES5

function Animal(leg,crying) {
  this.leg = leg;
  this.crying=crying;
}

Animal.prototype.howMuchleg= fuction(){
  console.log(leg);


Animal.prototype.whatSoundCrying = function () {
  console.log(crying);
};

let cat = new Animal(4,"야옹");
cat.howMuchleg(); // 4
cat.whatSoundCrying();//야옹

ES6

class Animal() {

constructor(leg,crying){
  this.leg = leg;
  this.crying=crying;
}

howMuchleg){
  console.log(leg);

}
whatSoundCrying{
  console.log(crying);
}
}

let cat = new Animal(4,"야옹");
cat.howMuchleg(); // 4
cat.whatSoundCrying();//야옹

'개발 > 자바스크립트' 카테고리의 다른 글

동기와 비동기  (0) 2023.03.20
프로토타입  (0) 2023.03.15
고차 함수와 메서드  (0) 2023.03.14
이벤트  (0) 2023.03.13
DOM 심화  (0) 2023.03.08
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함