728x90
객체
자바스크립트는 객체 기반 프로그래밍 언어로, 거의 모든 것이 객체라고 볼 수 있습니다. 객체는 원시 타입의 값과 다르게 변경 가능한 값(mutable value)입니다. 0개 이상의 프로퍼티를 가지며, 프로퍼티는 키(key)와 값(value)으로 구성됩니다. 이때, 프로퍼티의 값으로 모든 값을 사용할 수 있고, 일급 객체인 함수 또한 값으로 사용할 수 있으며 함수가 값인 프로퍼티를 메서드라고 합니다.
- 프로퍼티 - 객체의 상태를 나타내는 값(data)
- 메서드 - 프로퍼티를 참조하고 조작할 수 있는 동작(behavior)
객체 리터럴에 의한 객체 생성
클래스 기반 객체지향 언어(C++, 자바)에서는 new 연산자를 통해 사전에 정의한 클래스의 인스턴스를 생성하지만, 프로토타입 기반 객체지향 언어인 자바스크립트에서는 객체 리터럴을 통해서도 객체 생성이 가능합니다.
객체 리터럴은 중괄호 안에 프로퍼티를 정의하는 방법으로, 변수에 할당되는 시점에 자바스크립트 엔진이 객체 리터럴을 해석해서 객체를 생성합니다. 코드 블록과 달리 값으로 평가되는 표현식이기 때문에 닫는 중괄호 뒤에 세미콜론을 붙입니다.
프로퍼티
프로퍼티는 키와 값으로 구성됩니다. 메서드는 프로퍼티의 값이 함수인 경우이며, 메서드 내부의 this는 객체 자신을 가리킵니다.
- 프로퍼티 키 - 빈 문자열을 포함하는 모든 문자열 또는 심벌값
- 식별자 네이밍 규칙을 따르지 않으면 반드시 따옴표 사용
- 프로퍼티 값 - 자바스크립트에서 사용할 수 있는 모든 값
프로퍼티 삭제
프로퍼티의 삭제는 delete 키워드를 사용합니다. delete person.age;
축약표현
프로퍼티 축약 표현
프로퍼티는 키와 값이 동일할 경우, 하나만 입력할 수 있습니다.
const obj1 = { x: x, y: y };
const obj2 = { x, y };
메서드 축약 표현
메서드는 함수 키워드 없이 표현할 수 있습니다.
const obj = {
method1: function () {
console.log("original");
},
method2() {
console.log("abbreviated");
},
};
참고자료
- 모던 자바스크립트 Deep Dive
'Language > JavaScript' 카테고리의 다른 글
함수 (0) | 2025.03.13 |
---|---|
원시 값과 객체의 비교 (0) | 2025.03.13 |
타입 변환과 단축 평가 (0) | 2025.03.13 |
제어문 (0) | 2025.03.13 |
연산자 (0) | 2025.03.12 |