Javascript 객체

김정훈·2024년 5월 4일

JavaScript

목록 보기
15/19

객체

코어객체

  • 내장 생성자 객체
    • Object
    • String
    • Array
    • Number
    • Boolean
    • Date
    • Funciton
    • Regex
  • 내장 객체
    • Math
    • JSON
    • Relect

호스트 객체 : 실행환경(런타임 환경)에 따라서 정의되는 객체

  • 웹브라우저 객체 : 웹 브라우저와 관련된 기능, 속성
  • window : 속성
    • location : 주소 관련 객체
    • history : 방문 기록 관련 기능, 속성
    • screen :
    • navigator
    • document :

1. 객체 생성하기

1) 객체 리터럴로 생성하는 방법

	{:,:... }
	{ } === new Object();: 모든 형태의 자료 - 원시타입 + 객체 

2) 생성자로 생성하는 방법

함수 객체 -> 다른 객체를 만드는 객체(생성자 함수 객체)
- 함수 생성자 객체의 prototype 상속 
- 함수 생성자 호출 this 값이 새로 만들어질 객체로 변경 
	- 초기화 

3) Object.create로 생성하는 방법

2. 프로토타입 상속

1) 상속

2) 프로토타입 체인

[[Prototype]] : 프로토 타입 체인 : 객체간의 상속
객체 - 프로토타입 체인 - 객체 : 상속

proto 속성 : 프로토타입 체인 변경

3)

Object.setPrototypeOf(...)
- 프로토타입 체인의 변경

Object.getPrototypeOf(...)
- 프로토타입 체인 확인

3. new 연산자의 역할

4. 프로토타입 객체의 프로퍼티

5. 프로토타입의 확인

1) instanceof 연산자

- 프로토타입의 체인 연결 관계인가를 체크

2) isPrototypeOf 메서드

6. Object.prototype

1) Object 생성자

2) Object 생성자의 프로퍼티와 메서드

3) Object.prototype의 메서드

7. Object.create로 객체 생성하기

8. 접근자 프로퍼티

1) getter / setter

2) 데이터의 캡슐화

9. 프로퍼티의 속성

1) 데이터 프로퍼티

  • 값(value)

  • 쓰기 가능(writable)
    false : 수정불가

  • 열거 가능(enumerable)
    false : for ... in :노출불가, Object.keys(...) : 키값 열거 불가

  • 재정의 가능(configurable)
    false : 설정 변경 불가, 삭제 불가
    (다만! writable : true인 경우 1회 한해서 false변경 가능)

2) 접근자 프로퍼티

  • 읽기(get)
  • 쓰기(set)
  • 열거 가능(enumerable)
  • 재정의 가능(configurable)

3) 프로퍼티 디스크립터 가져오기

Object.getOwnPropertyDescriptor

4) 객체의 프로퍼티 설정하기

Object.defineProperty

5) 객체의 프로퍼티 속성 여러 개를 한꺼번에 설정하기 : Object.defineProperties

6) Object.create의 두 번째 인수

10. 프로퍼티가 있는지 확인하기

1) in 연산자

2) hasOwnProperty 메서드

3) propertyIsEnumerable 메서드

11. 프로퍼티의 열거

1) for/in 문

2) Object.keys 메서드

-  열거할 수 있는 프로퍼티 이름만 배열로 만들어 반환

3) Object.getOwnPropertyNames 메서드

- 열거할 수 있는 프로퍼티와 열거할 수 없는 프로퍼티의 이름 모두 배열로 만드는 점이 특징

12. 객체 잠그기

1) 확장 가능 속성

  • 객체에 새로운 프로퍼티를 추가할 수 있는지를 결정합니다.

2) 확장 방지

Object.preventExtensions : 속성 추가 불가

3) 밀봉

Object.seal

  • configurable : alse
  • writable : true
  • peventExtensions 적용상태 👉 삭제, 속성 추가 불가, 값의 변경 가능.

4) 동결

Object.freeze

  • configurable : false
  • writable : false
  • preventExtensions 적용 상태 👉 삭제, 속성 추가 불가, 값의 변경도 불가.
profile
안녕하세요!

0개의 댓글