JavaScript는 객체기반의 스크립트 언어이며, JavaScript를 이루고 있는 거의 모든 것은 객체다.
객체는 이름과 값을 한 쌍으로 묶은 집합으로, 이름과 값이 한 쌍을 이룬 것을
프로퍼티라고 하고, 그것의 이름을 프로퍼티 이름 혹은 key라고 한다.
값으로 모든 데이터 타입의 데이터(원시 값, 객체)를 저장하고, 함수의 참조를 값으로 가진 프로퍼티는 메서드라는 이름으로도 부른다.
객체를 생성하는 방법에는 크게 두가지로 나뉜다.
var user = new Object(); // new 연산자를 이용한 객체 생성
var user = {}; // 객체 리터럴로 객체 생성
내부적으로 동작원리는 같으나, 객체 리터럴( {} )로 작성을 권고한다.
이유로는 가독성과 성능 그리고 오버라이딩이 존재한다.
// new Object() 생성자 사용시
var Human = new Object();
Human.name = "Sunki";
Human.sex = "male";
// 객체 리터럴 {} 사용시
var Human = {
name: "Sunki",
sex: "male",
};
Object = 1;
var user = new Object();
// TypeError: Object is not a constructor
Object가 오버라이딩 되어버려, function이 아닌 1로 인식해 버려 타입에러가 발생한다.