객체지향 프로그래밍
클래스와 인스턴스
객체는 일반적인 함수를 정의하듯이 만들고, 이때 함수를 이용하는 방법은 new키원드를 써서 만든다. 이는 새로운 인스턴스를 만드는 방법이다.
인스턴스를 만들 떄에는 new키워드 사용
즉시 생성자 함수가 실행되고, 변수에 클래스의 설게를 가진 새로운객체, 인스턴스가 할당
각각의 인스턴스는 클래스의 고유한 속성과 메서드를 갖게 된다.
//<클래스는 함수로 정의할수 있다.>
fuction Car(brand, name, color){
//인스턴스가 만들어질 때 실행되는 코드
}
//< class라는 키워드를 이용해서 정의할수도 있다.>
class Car{
constructor(brand, name, color){
//인스턴스가 만들어질 때 실행되는 코드
}
}
//new 키워드를 통해 클래스의 인스턴스 만듬
let avante = new Car('hyundai', 'avante', 'black')
let mini = new Car('bmw', 'muni', 'whire')
//각각의 인스턴스는 Car라는 클래스의 고유한 속성과, 메소드를 갖는다
//클래스 : 속성의 정의
//<ES5>
function Car (brand, name, color){
this.brand = brand ;
this.name = name;
this.color = color;
}
//<ES6>
class Car {
constructor(brand, name, color){
this.brand = brand ;
this.name = name;
this.color = color;
}
}
//클래스 : 메서드 정의 ,prototype이라는 키워드를 사용해야 메서드를 정의할 수 있다.
//생성자 함수와 함께 class 키워드 안쪽에 묶어서 정의한다.refuel() {}, drive() {}와 같이 작성되어 있는 부분
//<ES5>
function Car (brand, name, color){
this.brand = brand ;
this.name = name;
this.color = color;
}
Car.prototype.refuel = function(){
//연료 공급을 구현하는 코드
}
Car.prototype.drive = function(){
//운전을 구현하는 코드
}
//<ES6>
class Car {
constructor(brand, name, color){
this.brand = brand ;
this.name = name;
this.color = color;
}
refuel(){//연료 공급을 구현하는 코드
}
drive(){ //운전을 구현하는 코드
}
}