[JavaScript] ES6 ํ•จ์ˆ˜์˜ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ

ํ•จ์ˆ˜์˜ ๊ตฌ๋ถ„ ES6 ์ด์ „์˜ ํ•จ์ˆ˜์˜ ๋ชจ๋“  ํ•จ์ˆ˜๋Š” ์‚ฌ์šฉ ๋ชฉ์ ์— ๋”ฐ๋ผ ๋ช…ํ™•ํ•œ ๊ตฌ๋ถ„์ด ์—†์–ด ํ˜ธ์ถœ ๋ฐฉ์‹์— ํŠน๋ณ„ํ•œ ์ œ์•ฝ ์—†์ด ๋‹ค์–‘ํ•œ ํ˜•ํƒœ๋กœ ํ˜ธ์ถœ์ด ๊ฐ€๋Šฅํ–ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, ์ƒ์„ฑ์ž ํ•จ์ˆ˜๊ฐ€ ์•„๋‹Œ ํ•จ์ˆ˜๊ฐ€ ๋ถˆํ•„์š”ํ•œ ํ”„๋กœํ† ํƒ€์ž… ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ˜ผ๋ž€์Šค๋Ÿฌ์šฐ๋ฉฐ ์‹ค์ˆ˜๋ฅผ ์œ ๋ฐœํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๊ณ  ์„ฑ๋Šฅ์—๋„ ์ข‹์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ES6์—์„œ๋Š” ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉ ๋ชฉ์ ์— ๋”ฐ๋ผ ์„ธ ๊ฐ€์ง€ ์ข…๋ฅ˜๋กœ ๋ช…ํ™•ํžˆ ๊ตฌ๋ถ„ํ–ˆ์Šต๋‹ˆ๋‹ค. ES ํ•จ์ˆ˜์˜ ๊ตฌ๋ถ„ constructor prototype super arguments ์ผ๋ฐ˜ ํ•จ์ˆ˜(Normal) O O X O ๋ฉ”์„œ๋“œ(Method) X X O O ํ™”์‚ดํ‘œ ํ•จ์ˆ˜(Arrow) X X X X ๋ฉ”์„œ๋“œ ES6 ์‚ฌ์–‘์—์„œ ๋ฉ”์„œ๋“œ๋Š” ๋ฉ”์„œ๋“œ ์ถ•์•ฝ ํ‘œํ˜„์œผ๋กœ ์ •์˜๋œ ํ•จ์ˆ˜๋งŒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. const obj = { x: 1, // foo๋Š” ๋ฉ”..