자바스크립트는
객체(object)기반의 프로그래밍 언어
함수, 배열, 정규 표현식 등 )은 모두 객체객체 타입(object / reference type) 은 다양한 타입의 값(원시 값 또는 다른 객체)을 하나의 단위로 구성변경 불가(immutable) 한 값이지만, 객체는 변경 가능(mutable) 한 값프로퍼티(property) 로 구성된 집합이며, 프로퍼티는 키(key) : 값(value) 로 구성함수(function) 도 프로퍼티의 값으로 설정가능 → 메서드(method)var myObj = {
num: 0, // 프로퍼티
increase: function () { ... ) // 메서드
}
[ 💡 NOTE ]
프로퍼티(property) = 객체의 상태를 나타내는 값(data)
메서드(method) = 프로퍼티(상태 데이터)를 참조하고 조작할 수 있는 동작(behavior)
자바스크립트는
프로토타입(prototype)기반 객체지향 언어
객체 리터럴object 생성자 함수생성자 함수Object.create 메서드클래스(ES6){ ... } ) 내에 0개 이상의 프로퍼티를 정의변수에 할당되는 시점에 자바스크립트 엔진은 객체 리터럴을 해석해 객체를 생성