Object Oriented Programming
하나의 모델이 되는 청사진(blueprint)을 만들고, 그 청사진을 바탕으로 한 객체를 만드는 프로그래밍 패턴
JavaScript에는 "객체"라는 개념이 이미 있음
= 용어를 잘 구분하는 것이 중요
일반적인 함수를 만들 때와 비슷하다
클래스 (ES5)
function Car (color) { }
클래스 (ES6)
class로 만들 수도 있다
class Car {
constructor(...args) {
// 만들어질 때 실행되는 부분
}
}
인스턴스
let mini = new Car('cyan')
new를 붙여서 만든다속성 : 클래스에 포함되는 변수
메소드 : 클래스에 포함되는 함수
(ES5)
function Car (brand, name, color) {
this.brand = brand;
this.name = name;
this.color = color; // 속성
}
Car.prototype.refuel = function() {
...
} // 메소드
(ES6)
class Car {
constructor(brand, name, color) {
this.brand = brand;
this.name = name;
this.color = color;
} // 속성
refuel() {
...
} // 메소드
}
let mini = new Car('bmw', 'mini', 'white');
mini.brand; // 'bmw'
mini.refuel() // 연료가 공급되는 메소드 실행
지금까지 만들었던 배열은 모두 Array의 인스턴스
let arr = [1, 2, 3];
arr.length; // 3, arr의 length 속성
arr.push(4); // arr에 4를 추가하는 메소드
다음 두 줄은 같은 배열을 만든다
let arr = [1, 2, 3];
let arr = new Array(1, 2, 3);
mdn 문서도 Array.prototype.메소드명으로 안내
ex) Array.prototype.push()
