모던 자바스크립트 Deep Dive - Ch10 객체 리터럴

hun2__2·2023년 7월 24일
0

책 스터디

목록 보기
8/9

Ch10. 객체 리터럴

10.1 객체란?

JS에서 원시 타입의 값 을 제외한 나머지 값은 모두 객체이다.

원시 타입의 값은 변경이 불가능하지만 객체 타입의 값은 변경이 가능하다

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

다른 객체 지향 언어와 다르게 JS는 생성자 없이도 객체를 생성할 수 있다. 객체를 생성하는 5가지 방법은

  1. 객체 리터럴 ( {} 사용해서 객체 생성)
  2. Object 생성자 함수
  3. 생성자 함수
  4. Object.create 메서드
  5. 클래스(ES6~)

10.3 프로퍼티

객체는 프로퍼티의 집합이며 프로퍼티는 키와 값으로 구성한다

이때 프로터피의 이름은 식별자 네이밍 규칙을 따르지 않아도 되지만 따르지 않을 때는 반드시 따옴표로 덮어줘 문자열로 바꿔줘야한다

프로퍼티 규칙

  1. 프로퍼티 키에 문자열이나 심벌 값 이외 값을 사용하면 암묵적 타입 변환을 통해 문자열로 변환된다
  2. 프로퍼티 키를 중복 선언하면 나중에 선언한 프로퍼티 가 먼저 선언한 프로퍼티로 덮어쓴다

10.4 메서드

JS는 모든 값이 프로퍼티 값으로 사용될 수 있다.

이때 프로퍼티값으로 사용된 함수를 일반함수와 구별하기 위해 메서드라고 부른다

10.5 프로퍼티 접근

프로퍼티에 접근하는 방법은 두가지가 있다.

  1. 마침표 프로퍼티 접근 연산자(.) 마침표 표기법
  2. 대괄호 프로퍼티 접근 연산자를 사용하는 대괄호 표기법

대괄호 프로퍼티 접근 연산자 내부에 지정하는 프로퍼티 기는 반드시 따옴표로 감싼 문자열이어야 한다

프로피터 키가 식별자 네이밍 규칙을 준수 하지 않는 이름이라면 반드시 대괄호 표기법을 사용해야 한다. 단, 프로퍼티 키가 숫자인 경우에는 따옴표를 생략하고 사용할 수 있다 .

10.6 프로퍼티 값 갱신

이미 존재하는 프로퍼티에 값을 할당하면 프로퍼티 값이 갱신됨

10.7 프로퍼티 동적

존재하지 않는 프로퍼티에 값을 할당하면 프로퍼티가 동적으로 생성되어 추가되고 프로퍼티 값이 할당됨

10.8 프로퍼티 삭제

delete 연산자는 객체의 프로퍼티를 삭제함, 만약 존재하지 않는 프로퍼티면 무시됨

10.9 ES6에서 추가된 객체 리터럴의 확장 기능

ES6이후로 프로퍼티 값으로 변수를 사용하는 경우 키값과 변수가 동일하면 축약해서 사용가능함

메서드도 축약해서 사용가능한데

ES5까지는 프로퍼티 값으로 함수를 할당했지만

ES6부터는 function 키워드를 생략한 표현을 함

cf) 정확하게 말하면 두개는 다른 것임. 동작방식이 다름

ES6이후로는 메서드를 function 키워드를 생략한 표현으로 정의했으며 ES6 메서드는 인스턴스를 생성할 수 없는 메서드이고, 자신을 바인딩한 객체를 가리키는 내부슬롯을 가져서 super키워드를 사용할 수 있음.

profile
과정을 적는 곳

0개의 댓글