[JavaScript] Class

OFFDUTYBYBLO·2020년 6월 3일
0

JavaScript

목록 보기
22/40
post-thumbnail

1.객체지향 프로그래밍

  • 관계성있는 객체들의 집합이라는 관점으로 접근하는 소프트웨어 디자인
  • 각 객체는 메세지를 받을 수 있고, 데이터를 처리하고, 또 다른 객체에 메세지를 전달할 수 있다.
  • 보다 유연하고 유지보수성이 높은 프로그래밍을 할 수 있도록 의도된 개념
  • 객체를 매번 만들어서 사용하지 않아도 class라는 설계도를 통해 공장처럼 찍어낼 수 있다.

2.this

  • 객체 내부에서, 해당 객체의 프로퍼티에 접근하려면, 'this'라는 키워드를 사용할 수 있다.
let ray = {  
  name: 'Ray',  
  price: 2000000,   
  getName: function() {  
    return this.name;  
  },   
  getPrice: function() {  
    return this.price;  
  },   
  applyDiscount: function(discount) {  
    return this.price * discount;   
  } 
}
  • 위 코드에서 this.name => ray.name을 의미

3.생성자(Constructor)

  • 객체의 설계도인 클래스는 문법이 비슷하다. 둘의 큰 차이는 cunstructor라는 생성자 함수이다.
class Car {
  constructor(name, price) {
    this.name = name;
    this.price = price;
  }
}
//Car라는 클래스를 생성 
//class는 새로운 instance를 생성할 때마다 constructor()메서드를 호출

const morning = new Car('Morning', 2000000); 
// 객체를 생성하는 과정
  • Car는 class의 이름, 항상 대문자로 시작하고 CamelCase로 작성
  • Car class의 instance를 생성할때마다 constructor메서드가 호출
  • constructor() 메서드는 name,price 2개의 argument를 받는다.
  • this 키워드는 class의 실행범위(context)에서 this는 해당 instance를 의미한다.
  • cunstructor()에서 인자로 넘어오는 name과 price를 사용해 Car instance의 name,price 프로퍼티에 값을 할당
  • 클래스 내에서 name,price와 같이 변경 가능한 상태값이자 class내의 컨텍스트에서 어느 곳에서나 사용할 수 있는 변수를 '멤버 변수'라고 부른다.
  • 멤버 변수는 'this' 키워드로 접근한다.
class class이름 {								
	constructor(parameter1,parameter2) { // 매개변수로 만들어질 객체의 데이터를 받음
    	this.parameter1 = name;			 // this = class이름
        this.parameter2 = age;
    }
}

4.인스턴스(instance)

  • 인스턴스는 class를 통해 생성된 객체이다.
  • 인스턴스는 class의 property이름과 method를 갖는 객체이다.
  • 인스턴스 마다 모두 다른 property 값을 갖고 있다.
const morning = new Car('Morning', 20000000);
  • 인스턴스는 Class 이름에 new를 붙여서 생성
  • 클래스 이름 우측에 () 내부에 constructor에서 필요한 정보를 인자로 넘긴다.
  • Car클래스의 새로운 인스턴스를 생성하려면 new 키워드가 필요하다.
  • new키워드는 constructor() 메서드를 호출하고 새로운 instance를 return해준다.
  • morningdlfksms tmxmfldrhk 200000dlfksms Numberfmf Car 생성자에 넘겨줬고, name과 price 프로퍼티에 각자의 값이 할당

5.메서드 (Methods)

  • 메서드는 함수이다.
  • 객체가 프로퍼티 값으로 함수를 갖고 있는 것을 메서드라고 부른다.
  • class의 method는 object의 문법과 같다.
  • 다만 객체는 프로퍼티마다 콤마로 구분하지만 클래스는 필요없다.
profile
블로그 운영 x

0개의 댓글