๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“’ JavaScript

[JS Tam9์ƒํ™œ] #3 ๊ฐ์ฒด์™€ ํ”„๋กœํผํ‹ฐ

by Tamii 2021. 7. 17.
๋ฐ˜์‘ํ˜•

๐Ÿ“ŒObject ๊ฐ์ฒด

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๊ฐ์ฒด(object) ๊ธฐ๋ฐ˜์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด

๊ฐ์ฒด๋Š” mutable (๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•œ ๊ฐ’) ์ด๋‹ค.
๊ธฐ๋ณธ์ ์œผ๋กœ ๊ฑฐ์˜ ๋ชจ๋“ ๊ฒƒ์ด ๊ฐ์ฒด์ด๋ฏ€๋กœ ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

  • ๊ฐ์ฒด๋Š” property๋กœ ๊ตฌ์„ฑ๋œ๋‹ค
  • JS์˜ ํ•จ์ˆ˜๋„ ๊ฐ์ฒด๋กœ ์ทจ๊ธ‰ : ํ•จ์ˆ˜ = property

ํ”„๋กœํผํ‹ฐ : ๊ฐ์ฒด์˜ ์ƒํƒœ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฐ’(data)
๋ฉ”์„œ๋“œ:

  • ํ”„๋กœํผํ‹ฐ๋ฅผ ์ฐธ์กฐํ•˜๊ณ  ์กฐ์ž‘ํ•˜๋Š” ๋™์ž‘
  • property๊ฐ’์ด ํ•จ์ˆ˜์ธ ๊ฒฝ์šฐ
  • ๊ฐ์ฒด์— ๋ฌถ์—ฌ์žˆ๋Š” ํ•จ์ˆ˜

ex) increase : ๋ฉ”์„œ๋“œ num :ํ”„๋กœํผํ‹ฐ

var counter = {
num : 0,
increase : function(){
    this.num++
    }
};
immutable ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฐ’ const ๋ณ€์ˆ˜, Object.freeze ๊ฐ์ฒด
mutable ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•œ ๊ฐ’ ๊ฐ์ฒด,ํ•จ์ˆ˜,๋ฐฐ์—ด,์ •๊ทœํ‘œํ˜„์‹

variable : ๋ณ€์ˆ˜๋Š” ๊ฐ’ ์ž์ฒด๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋œ๋‹ค

Object : ๊ฐ์ฒด๋Š” Object๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” reference๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋œ๋‹ค.

๊ฐ์ฒด ์ƒ์„ฑ

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ํ”„๋กœํ† ํƒ€์ž… ์–ธ์–ด๋กœ ๋‹ค์–‘ํ•œ ๊ฐ์ฒด ์ƒ์„ฑ ๋ฐฉ๋ฒ•์„ ์ง€์›

1) ๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด
2) Object ์ƒ์„ฑ์ž ํ•จ์ˆ˜
3) ์ƒ์„ฑ์ž ํ•จ์ˆ˜
4) Object.creater
5) ํด๋ž˜์Šค (ES6)

ํ‚ค์›Œ๋“œ ์˜ˆ์‹œ
๊ฐ์ฒด๋ฆฌํ„ฐ๋Ÿด const todo ={content:'hi'}
์ƒ์„ฑ์ž ํ•จ์ˆ˜ const todo = new Todo

๐Ÿ“Œ ํ”„๋กœํผํ‹ฐ

๊ฐ์ฒด ํ”„๋กœํผํ‹ฐ ๊ฐ’ ์ ‘๊ทผํ•˜๋Š” ๋‘๊ฐ€์ง€ ๋ฐฉ๋ฒ•

๋Œ€๊ด„ํ˜ธ๋กœ ์ ‘๊ทผํ•  ์‹œ์—” ๊ผญ '๋กœ ๊ฐ์‹ผ ๋ฌธ์ž์—ด์ด์–ด์•ผ ํ•จ

๋งˆ์นจํ‘œ person.name
๋Œ€๊ด„ํ˜ธ person['name']

Node.js ์™€ ๋ธŒ๋ผ์šฐ์ € ํ™˜๊ฒฝ์˜ ์‹คํ–‰ ๊ฒฐ๊ณผ ์ฐจ์ด

๋ธŒ๋ผ์šฐ์ € ํ™˜๊ฒฝ์—๋Š” ๊ธฐ์กด ์ „์—ญ๊ฐ์ฒด์˜ ํ”„๋กœํผํ‹ฐ๊ฐ€ ์•”๋ฌต์ ์œผ๋กœ ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ „์—ญ๊ฐ์ฒด์˜ ํ”„๋กœํผํ‹ฐ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœํผํ‹ฐ ๊ฐ’์„ ์ ‘๊ทผํ•  ๊ฒฝ์šฐ ๋ธŒ๋ผ์šฐ์ €์™€ ๊ฒฐ๊ณผ๊ฐ€ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋‹ค.

์ƒ์„ฑ๊ณผ ์‚ญ์ œ

var person = {
    name : 'Tami',
}

//์ƒ์„ฑ
person.age = 25 // {name:'Tami',age:'25'}

//์‚ญ์ œ
delete person.age // {name: 'Tami'} 

ํ”„๋กœํผํ‹ฐ ํ‚ค ์ƒ๋žต ๊ฐ€๋Šฅ

const x=1, y=3;

const obj = {x,y}
//const obj = {x:x, y:y}
//obj = {x:1, y:3}

๋Œ“๊ธ€