자바스크립트 객체

OUO·2022년 2월 21일
0
post-thumbnail
let person = {
  key: "value", // 프로퍼티 (객체 프로퍼티) => 객체가 가지고 있는 데이터
  key1: "value2",
  key2: true,
  key3: undefined,
  key4: [1, 2],
  key5: function () {}
}; // 객체 리터럴 방식
let person = {
  name: "김태주",
  age: 25
};

console.log(person["name"]); // [] 프로퍼티 사용할 때에는 괄호안에 프로퍼티의 key를 "" 문자열 형식으로 넣어야 함 
console.log(person.age);
let person = {
  name: "김태주",
  age: 25
};

console.log(getPropertyValue("name"));

function getPropertyValue(key) {
  return person[key];
}// 동적인 파라미터를 전달받는 상황, key가 고정되어 있지 않은 상황 => [] 표기법 사용 객체의 프로퍼티에 접근 가능
let person = { // 프로퍼티를 수정하는 행위는 person이라는 상수 자체를 수정하는 행위가 아니므로 const 가능
  name: "김태주",
  age: 25
};

person.location = "한국"; // key값 추가 (1 방법)
person["gender"] = "남성"; // key값 추가 (2 방법)

person.name = "김태주 a"; // 값 변경 (1 방법)
person["age"] = 36; // 값 변경 (2 방법)
let person = {
  // 프로퍼티를 수정하는 행위는 person이라는 상수 자체를 수정하는 행위가 아니므로 const 가능
  name: "김태주",
  age: 25
};
 // delete를 사용하면 메모리에서 삭제되는건 아니다
delete person.age; // 삭제 방법 1
delete person["age"]; // 삭제 방법 2
let person = {
  // 프로퍼티를 수정하는 행위는 person이라는 상수 자체를 수정하는 행위가 아니므로 const 가능
  name: "김태주",
  age: 25
};
 
// 기존의 가지고 있던 문자열을 메모리에서도 삭제 *추천하는 삭제법
person.name = null; // 삭제한것과 동일한 효과
let person = {
  // 프로퍼티를 수정하는 행위는 person이라는 상수 자체를 수정하는 행위가 아니므로 const 가능
  name: "김태주", // 멤버
  age: 25, // 멤버
  say: function () {
    console.log(`안녕 나는 ${this["name"]}`); // ${this["name"]} = ${person["name"]}
  } // 메서드
};
person["say"](); // 함수 호출법 1
person.say(); // 함수 호출법 2
let person = {
  // 프로퍼티를 수정하는 행위는 person이라는 상수 자체를 수정하는 행위가 아니므로 const 가능
  name: "김태주", // 멤버
  age: 25, // 멤버
  say: function () {
    console.log(`안녕 나는 ${this["name"]}`); // ${this["name"]} = ${person["name"]}
  } // 메서드
};

console.log(`name : ${"name" in person}`); // person 객체에 name이라는 키를 갖는 프로퍼티가 있냐?
console.log(`gender : ${"gender" in person}`);
profile
develoops!er

0개의 댓글