JS - Obj / TIL - 5

주지홍·2022년 1월 1일
0

TIL

목록 보기
7/25
post-thumbnail

Object

객체의 키에는 스페이스, 한글, 특수문자 등이 들어갈 수 있다.

변수 선언에서 할 수 없었던 표현이 가능

프로퍼티 접근

let difficult = {
  'my name': 'boong',
  color: 'silver',: '한글인 키는 따옴표가 없어도 되는군!!',
  '!키': '느낌표 있는 키는 따옴표가 필요하군',
  $special: '$는 없어도 되는군'
};

프로퍼티 할당

const 로 선언된 변수는 값을 절대 수정할 수 없었습니다.

const mutableObj = {
  name: '객체'
};

mutableObj.name = '수정';
mutableObj.type = 'Object 타입';

const 로 선언된 변수에 객체를 다시 할당하면 오류가 생기지만
그 객체에 프로퍼티를 추가하거나 수정하는 것은 가능

Method (메서드)

객체에 저장된 값이 함수일 때, 메서드라고 부름

console.log();

console.log() 도 객체. 자바스크립트 어디에나 접근이 가능 했으니 global 객체console 다음에 dot(.)으로 프로퍼티를 접근했고, log 라는 키의 값은 함수. log는 console 이라는 객체의 메서드. 객체에 메서드를 정의하려면 아래와 같이 할 수 있습니다.

let methodObj = {
  do: function() {
    console.log('메서드 정의는 이렇게');
  }
}
let methodObj = {
  do: function() {
    console.log('메서드 정의는 이렇게');
  }
}

호출방법 methodObj.do();

객체는 reference로 저장.

const hiObj = { 
  name: '안녕' 
};
const helloObj = {
  name: '안녕'
};

console.log(hiObj === helloObj); // false

hiObj 가 갖고 있는 진짜 값은 메모리 주소인 reference입니다.

하지만 hiObj 를 불러올 때 메모리 주소를 반환하는 것이 아니라,

해당 메모리에 저장된 데이터를 반환해 준다!

console.log(hiObj.name === helloObj.name); / true
profile
오늘도 내일도 끊임없는 싸움

0개의 댓글