객체(Object)를 생성하기 위한 일종의 설계 도면 or 템플릿
클래스(Class)를 기반으로 생성된 실제 객체
쉽게 설명을 하자면 클래스는 빵을 만들기 위한 빵틀, 인스턴스는 틀에서 만들어진 빵이라는 것이다.
생성자와 new 키워드는 객체의 구조를 재활용하기 위해서 나온 개념이다.
생성자(constructor)는 객체를 만드는 역할을 하는 함수다. 자바스크립트에서 함수는 재사용 가능한 로직의 묶음이 아니라 객체를 만드는 창조자라고 할 수 있다.
function compareValuesES5(a, b) { if (a === b) { return "Equal"; } else { return "Not equal"; } }
const compareValuesES6 = (a, b) => { if (a === b) { return "Equal"; } else { return "Not equal"; } }
위의 예시를 보면 ES5 버전은 function 키워드를 사용하여 함수를 선언하고, ES6 버전은 화살표 함수(=>)를 사용하여 함수를 선언한다.
기능적인 측면에서는 두 함수가 동일한 동작을 수행하지만 문법적인 차이가 있음