리터럴? 생성자?
int a = 1;
string s = "cat";
var empty_object = {} //빈 객체
var stooge = {
first_name : "Jerome",
last_name : "Howard"
}
‘리터럴’은 변수에 할당하는 고정 형태의 값입니다
int a 우항에 놓이는 1 이나, var empty_object 우항에 놓이는 {} 와 같이 표기한 문자가 있는 그대로 자신을 나타내는 값이죠. 변수가 자신의 이름과 자신이 가리키는 값이 다를 수 있고, 얼마든지 값을 편집할 수 있는 것과 대조됩니다.
var student = new Object();
var contries = new Array();
반면 생성자는 일종의 함수입니다. 객체의 초기화를 담당하는 함수죠. 리터럴과 달리 구현의 과정과 결과물은 함수 안에 숨겨져 있어 확인하기 어렵습니다. 어떤 인자가 들어가냐에 따라 사이드 이펙트를 발생시키기도 하죠.
둘의 차이점은 프로토타입 객체(proto) 이다.
생성자 표기법으로 생성한 변수의 프로토타입은 생성자 함수고,
리터럴 표기법으로 생성한 변수의 프로토타입은 자기 자신의 객체다.