본문 바로가기
부트캠프 개발일지 2023-2024/Bootcamp 생활기록

[7주차] 자바스크립트: 계산된 속성명 (computed property name), 객체 개념 메소드

by whereanna00 2023. 11. 14.

 

 

JS | 계산된 속성명 (computed property name)

객체 속성명이 변한다면 [ ] 안에 가두자

velog.io

 

 

function Character(wroteTo, id, film) {
  this.wroteTo = wroteTo;
  this.id = id;
  this.film = film;
}

let Paul = new Character("Paul", 1, "Dune");
let Elio = new Character("Elio", 2, "Call me by your name");
let Gatsby = new Character("Gatsby", 3, "Rainy days in Newyork");
let Lee = new Character("Lee", 4, "Bones and all");

// get Paul's id
console.log('paul id',Paul.id);

// get Paul's film
console.log('paul film',Paul.film);

// get Paul's wroteTo
console.log('paul wroteTo',Paul.wroteTo);

//Object.keys() 메소드 : key의 이름을 배열로 반환
let keys = Object.keys(Paul);
console.log(keys); // ['wroteTo', 'id', 'film']

//Object.values() 메소드 : value들을 배열로 반환
let values = Object.values(Paul);
console.log(values); // ['Paul', 1, 'Dune']

//Object.entries() 메소드 : 
let entries = Object.entries(Paul);
console.log(entries);
  // [ ['wroteTo', 'Paul'], ['id', 1], ['film', 'Dune'] ]
console.log(entries[0]); // ['wroteTo', 'Paul']
console.log(entries[0][1]); // Paul

//Object.assign() 메소드 : 
//새로운 객체를 만들고 기존 객체 데이터를 복사
//그렇게 복사된 데이터를 가진 새로운 객체에 데이터를 부분적으로 수정할 때 보통 쓰임
// let newObj = Object.assign(target, source) 
// target : 복사하는 객체, source: 복사에 참조할 객체
let newPaul = Object.assign({}, Paul);
console.log(newPaul); // newPaul = {wroteTo: "Paul", id: 1, film: "Dune"}
newPaul.id = 10;
console.log(newPaul); // {wroteTo: 'Paul', id: 10, film: "Dune"}
console.log(Paul); // {wroteTo: 'Paul', id: 1, film :"Dune}

let newPaul2 = Object.assign({}, Paul, {film: 'Dune2'});
console.log('newPaul2',newPaul2); // {wroteTo: "Paul", id: 1, film :"Dune2"}
let newPaul3 = Object.assign({}, Paul, film: 'Dune3');
console.log('newPaul3', newPaul3); // Syntax Error

let a = 1;
let b = 3;
b = 4;
console.log(a,b); // a = 1, b = 4
728x90
반응형