[모던 자바스크립트 Deep dive] Study - 10장 객체 리터럴

n-u·2022년 4월 16일
0
post-thumbnail

10 객체 리터럴

  • 자바스크립트는 프로토 타입의 객체 기반의 프로그래밍

10.1 객체란?

  • 그래서 자바를 구성하는 거의 "모든 것"이 객체이다.
  • 원시 값을 제외한 나머지 값(함수, 배열, 정규 표현식 등)은 모드 객체이다.
  • 프로퍼티와 메서드로 구성된 집합체

    프로퍼티 : 객체의 상태를 나타내는 값(data)
    메서드 : 프로퍼티(상태 데이터)를 참조하고 조작할 수 있는 동작(behavior)

  • => 프로퍼티와 메서드를 통해 상태와 동작을 하나의 단위로 구조화 할 수 있어 유용하다.
  • 객체 타입은 다양한 타입의 값(원시 값 또는 다른 객체)을 하나의 단위로 구성한 복합적인 자료구조이다.

  • 객체 타입의 값은 변경 가능한 값이다.
    ※ 원시 타입은 단 하나의 값만 나타내며, 원시 타입의 값, 즉 원시 값은 변경 불가능한 값이다.

  • 자바스크립트에서는 모든 값은 프로퍼티 값이 될 수 있다.

  • 자바스크립트 함수는 일급 객체(?)임으로 값으로 취급할 수 있다. 따라서 함수도 프로퍼티 값으로 사용할 수 있다. -> 메서드(프로퍼티의 값이 함수일 경우)라고 한다.

객체지향 프로그래밍 : 객체의 집합으로 프로그램을 표현하려는 프로그래밍 패러다임



10.2 객체 리터럴에 의한 객체 생성

  • 자바스크립트는 프로토타입 기반 객체 지향 언어로서 다양한 객체 생성 방법을 지원한다.
    1. 객체 리터럴 (가장 일반적이고 간단한 방법)
    2. Object 생성자 함수
    3. 생성자 함수
    4. Object.create 메서드
    5. 클래스(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번째 할때 도전해보고 지금은 천천히 읽고 정리하면서 머리 속에 내용을 새기는 노력을 해야 할 것 같다.

profile
기록하며 발전하는 삶

0개의 댓글