๋ณธ๋ฌธ์œผ๋กœ ๊ฑด๋„ˆ๋›ฐ๊ธฐ

JavaScript ๊ฐ์ฒด ๊ธฐ๋ณธ

ยท ์•ฝ 2๋ถ„

๊ฐ์ฒด#

๊ฐ์ฒด๋Š” ๋ฌธ์žํ˜•์œผ๋กœ๋œ ํ‚ค(key)์™€ ๋ชจ๋“  ์ž๋ฃŒํ˜•์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ’(value) ์Œ์œผ๋กœ ๊ตฌ์„ฑ๋œ ์—ฌ๋Ÿฌ ํ”„๋กœํผํ‹ฐ(property)์˜ ์ง‘ํ•ฉ์ด๋‹ค. ํ”„๋กœํผํ‹ฐ์˜ ๊ฐ’์œผ๋กœ ํ•จ์ˆ˜๊ฐ€ ๋ ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด ๊ฒฝ์šฐ ๋ฉ”์†Œ๋“œ(method)๋ผ๊ณ  ๋ถˆ๋ฆฐ๋‹ค.

๊ฐ์ฒด๋Š” ๊ณ ์œ ์˜ ํŒจํ‚ค์ง€์— ์ •๋ณด๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ๋ณดํ˜ธํ•ด์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

JavaScript์—์„œ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์—๋Š” ํฌ๊ฒŒ 2๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. (์ถ”๊ฐ€์ ์œผ๋กœ Object.create()๋ฅผ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.)

let obj1 = new Object(); // '๊ฐ์ฒด ์ƒ์„ฑ์ž' ๋ฌธ๋ฒ•let obj2 = {}; // '๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด' ๋ฌธ๋ฒ•

๋‘ ๋ฐฉ๋ฒ•์€ ์ฐจ์ด๊ฐ€ ์—†๋‹ค.

Object๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋‚˜ ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ƒ์„ฑํ•  ๋•Œ, ์ฐจ์ด๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ์ด ์ฐจ์ด์˜ ํ•ต์‹ฌ์€ ํ”„๋กœํ† ํƒ€์ž… ๊ฐ์ฒด([[Prototype]])์— ์žˆ๋‹ค.

๊ฐ์ฒด ์ •๋ ฌ ๋ฐฉ์‹#

"ํ”„๋กœํผํ‹ฐ์—” ์ˆœ์„œ๊ฐ€ ์žˆ์„๊นŒ?"

์ •์ˆ˜ ํ”„๋กœํผํ‹ฐ๋Š” ์ž๋™์œผ๋กœ ์ •๋ ฌ๋˜๊ณ , ๊ทธ ์™ธ์˜ ํ”„๋กœํผํ‹ฐ๋Š” ๊ฐ์ฒด์— ์ถ”๊ฐ€ํ•œ ์ˆœ์„œ๋Œ€๋กœ ์ •๋ ฌ๋œ๋‹ค. ์ฐธ๊ณ 

์ฐธ๊ณ ์ž๋ฃŒ#