- 그래서 자바를 구성하는 거의 "모든 것"이 객체이다.
- 원시 값을 제외한 나머지 값(함수, 배열, 정규 표현식 등)은 모드 객체이다.
- 프로퍼티와 메서드로 구성된 집합체
프로퍼티 : 객체의 상태를 나타내는 값(data)
메서드 : 프로퍼티(상태 데이터)를 참조하고 조작할 수 있는 동작(behavior)- => 프로퍼티와 메서드를 통해 상태와 동작을 하나의 단위로 구조화 할 수 있어 유용하다.
객체 타입은 다양한 타입의 값(원시 값 또는 다른 객체)을 하나의 단위로 구성한 복합적인 자료구조이다.
객체 타입의 값은 변경 가능한 값이다.
※ 원시 타입은 단 하나의 값만 나타내며, 원시 타입의 값, 즉 원시 값은 변경 불가능한 값이다.
자바스크립트에서는 모든 값은 프로퍼티 값이 될 수 있다.
자바스크립트 함수는 일급 객체(?)임으로 값으로 취급할 수 있다. 따라서 함수도 프로퍼티 값으로 사용할 수 있다. -> 메서드
(프로퍼티의 값이 함수일 경우)라고 한다.
※객체지향 프로그래밍 : 객체의 집합으로 프로그램을 표현하려는 프로그래밍 패러다임
- 객체 리터럴 (가장 일반적이고 간단한 방법)
- Object 생성자 함수
- 생성자 함수
- Object.create 메서드
- 클래스(ES6)
=> 자바스크립트의 유연함과 강력함을 대표하는 객체 생성 방식이다.
객체를 생성하기 위한 표기법이다.
※ 리터럴(literal)은 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용하여 값을 생성하는 표기법
- 중괄호{...} 내에 0개 이상의 프로퍼티를 정의한다.
var person = { name : 'lee', sayHello : function(){ console.log(`Hello! My name is ${this.name}).`} } }; console.log(typeof person); //object console.log(person); //{name : 'lee', sayHello : f} ```
- 만일 중괄 호 내에 프로퍼티를 정의하지 않았다면 빈 객체가 생성된다.
var emapty = {}; //빈 객체 console.log(typeof empty); //object ```
객체 리터럴에 프로퍼티를 포함시켜 객체를 생성함과 동시에 프로퍼티를 만들 수 있고, 객체를 생성한 이후에 프로퍼티를 동적으로 추가할 수도 있다.
주의) 객체 리터럴의 중괄호는 코드 블록을 의미하지 않는다!!
그래서 세미콜론을 꼭 붙인다!!
작심 삼일이라고 했나... 겨우 4일정도 하고 있는데 4일째는 책을 피지도 못했다가 죄책감이 들어서 공부했지만.. 진도가 영 안나간다.
하루 30장(약 2단원씩)은 글의 이해를 하기에도 급급한 나에게 너무 많은 양인 것 같아 하루 1단원 챌린지도 수정해서 이어갈 것 이다.
하루 30장은 2번째나 3번째 할때 도전해보고 지금은 천천히 읽고 정리하면서 머리 속에 내용을 새기는 노력을 해야 할 것 같다.