: 절차 지행 프로그래밍과는 다르게 데이터와 기능을 한 곳에 묶어서 처리
하나의 모델이 되는 청사진을 만들고, =>class
그 청사진을 바탕으로 한 객체를 만드는 =>instance
프로그래밍
ES6문법
class키워드
=>생성되는 함수는 생성자함수
=>인스턴스가 만들어질때 실행되는 코드(return 값x)
인스턴스
:새로운 인스턴스 만들때 new키워드 사용
=>생성자 함수가 실행되며, 변수에 클래스의 설계를 가진 새로운 객체, 즉 인스턴스가 할당
=>대문자로 시작하며 일반명사로 만듬
=>각각의 인스턴스는 클래스의 고유한 속성과 메서드를 가짐
(속성은 특징, 메서드는 객체에 딸린 함수)
ex)학생
속성: 키, 이름 나이 등
메서드: 밥먹기, 일어나기 등
용어
this
: 인스턴스 객체
prototype
: 속성이나 메서드를 정의
constructor
: 인스턴스가 초기화될 때 실행하는 생성자 함수
ES5와 ES6 작성 문법 예시
Function Car(brand, name, color){ //클래스를 함수로 정의
This.brand=brand; // 속성
This.name=name;
This.color=color;
}
Car.prototype.refuel=function(){ //메서드
//연료 공급을 구현하는 코드
}
Car.prototype.drive=function(){
//운전을 구현하는 코드
}
Class Car{ //class키워드로 정의(생성자 함수)
constructor(brand, name, color){
This.brand=brand; //속성
This.name=name;
This.color=color;
}}
refuel(){ //메서드
console.log(this.name+ '가득 찼습니다');
}
drive(){
Console.log(this.name + ‘가 운전을 시작합니다’);
}
*클래스의 인스턴스Let avante = new Car(‘Hyundai’, ‘kasper’, ‘white’); //클래스의 인스턴스 만듬
//인스턴스에서의 사용
avante.drive(); //kasper가 운전을 시작합니다
avante.color; //white
클로저모듈 패턴
같은 코드를 그대로 복사/붙여넣기 하지 않고 재사용 가능
-메서드 호출: 객체.메서드()과 같이 객체 내게 메서드를 호출하는 방법을 의미
ex)
function makeCounter() {
let value = 1;
return {
multiple: function() {
value*2;
},
decrease: function() {
value--;
},
getValue: function() {
return value;
}
}
}
let counter1 = makeCounter()
counter1.decrease()
counter1.getValue() // 0
let counter2 = makeCounter()
counter2.multiple()
counter2.multiple()
counter2.decrease()
counter2.getValue() // 3