본문 바로가기
📌 Front End/└ JavaScript

[JavaScript] 자바스크립트 객체(Object) - 객체 생성(리터럴, Object 생성자 함수), 객체 접근, 객체 반복문(for in문), 객체 this 키워드

by 쫄리_ 2024. 6. 15.
728x90
반응형

객체(Object)

  •  자바스크립트 객체는 {} key:vlaue가 모여 있는 Map 형식이다.
  • 자바스크립트 객체 형식 : { K: V, K:V, K:V } 
  • 객체내 Value에는 String, Number, Boolean, Array, Object, null, 함수까지 다양한 자료형이 올 수 있다.
  • 객체의 key는 무조건 String으로 저장된다.
  • 자바스크립트 객체 모양의 문자열을 JSON(JavaScript Object Notation, 자바스크립트 객체 표기법) 한다.
  • JSON의 형식 :  "{ K:V, K:V, K:V }"

 

📍 프로퍼티(property)란?

  • 객체는 프로퍼티의 집합이며, 프로퍼티는 키와 값으로 구성된다.
  • 이름과 값으로 구성된 정렬되지 않은 집합
  • 프로퍼티는 함수도 저장할 수 있음 ➡️ 프로퍼티 메서드

객체 생성 방법

1. 객체 리터럴

2. Object() 생성자 함수

// 객체 리터널 
let 객체명 = {};

// Object() 생성자
let 객체명 = new Object();

1. 객체 리터럴

{} 를 사용하여 객체를 생성한다.

객체에는 속성(property)과 속성에 담는 값(value)을 담을 수 있습니다.

이 값에는 원시 데이터 타입인 숫자, 문자열, 불리언, null 등도 담을 수 있고

참조 데이터 타입인 객체(배열, 함수, 객체)도 담을 수 있습니다.

모든 값을 담을 수 있다고 볼 수 있습니다.

 

📝 객체 리터럴 형태

var 객체명 = {키:값, 키:값, 메서드명:function(매개변수){ 실행할 코드 } };

 

2. Object() 생성자 함수

 

new 연산자와 Object 생성자 함수를 호출하여 빈 객체를 생성할 수 있습니다. 

빈 객체 생성 이후 프로퍼티 또는 메소드를 추가하여 객체를 완성 하는 방법입니다.

 

📝 Object() 생성자 함수 형태

let 객체명 = new Object();

 


객체 프로퍼티 추가/조회/수정/삭제

객체 프로퍼티 접근방법 2가지

  • 참조 연산자 . 사용
  • 대괄호 [] 사용
// ▶ 1. Dot notation : 객체 + .(점) + 키 값의 형태
// → 속성접근
객체명.key
// → 기능접근
객체명.메서드명(인자값)

// ▶ 2. Bracket notation : 키 값이 대괄호[] 안에 '문자열' 형태
객체명['key']

📝 프로퍼티 추가

// *존재하지 않는 key에 값을 대입하면 어떻게 될까? 객체에 새로운 K:V가 생성된다!
객체명.key = 값;
객체명['key] = 값;

 

📝 프로퍼티 조회

객채명.key
객체명['key']

 

📝 프로퍼티 수정

객체명.key = 새로운 값;

 

📝 프로퍼티 삭제

delete 객체명.key;

 


객체 반복문 (for in문)

객체 프로퍼티 순회하는 방법 3가지

  • 객체의 프로퍼티 키(key) 가져오기
  • 객체의 프로퍼티 값(value) 가져오기
  • 객체의 프로퍼티 키(key), 값(value) 가져오기

1. 객체의 프로퍼티 키(key) 가져오기

📝 객체 내 모든 속성 가져오기 형태

for(var key in 객체명) {
	docement.write(key);
}

 

2. 객체의 프로퍼티 값(value) 가져오기

📝 객체 내 모든 값 가져오기 형태

for(var key in 객체명) {
	docement.write(객체명[key]);
}

 

3. 객체의 프로퍼티 키(key), 값(value) 가져오기

📝 객체 내 모든 속성과 값을 가져오기 형태

for(var key in 객체명) {
	docement.write(key + ‘:’ + 객체명[key]);
}

 


객체 this 키워드

만약 동일한 변수명을 사용하는 전역변수와 객체내의 지역변수가 있다면, 

객체 내부 함수에서 변수명 작성 시(console.log(변수명)); 해당 객체의 변수가 아닌 전역변수가 선택된다.
따라서, 객체 내의 변수(key)를 선택하기 위해서는 this를 통해 현재 객체 내 변수를 사용하겠다는 것을 명시해야 한다. 

다만 동일 함수 내에 변수가 있다면 변수명 선택 시 그 변수를 사용한다.
➡️  전역변수 /객체내 변수 / 함수내 변수 구분할 것 !

 

this 바인딩 : this를 현재 객체와 연결하는 행위

자바스크립트에서는 생략을 해버리면 자기 자신의 객체의 속성이라고 생각을 안하므로

무조건 this. 혹은 키의 이름을 넣어줘서 자기 자신의 객체임을 분명하게 표시해야만한다.

 

 

사용예시

let A = {  
    prop: 'Hello',
    sayHello: function() {
        console.log( this.prop );
    }
};

 

 

728x90
반응형