๊ฐ์ฒด ๊ตฌ์กฐ๋ถํด(Object Destructuring)๋ JavaScript์์ ๊ฐ์ฒด์ ์์ฑ์ ๋ณด๋ค ์ฝ๊ฒ ์ถ์ถํ์ฌ ๋ณ์์ ํ ๋นํ ์ ์๊ฒ ํ๋ ๋ฌธ๋ฒ์ ๋๋ค. ์ด ๋ฌธ๋ฒ์ ES6(ES2015)์์ ๋์ ๋์์ผ๋ฉฐ, ๊ฐ์ฒด ๋ด๋ถ์ ์์ฑ์ ์ง์ ์ ์ผ๋ก ์ ๊ทผํ์ฌ ํด๋น ๊ฐ์ ๋ณ์๋ก ๋ง๋ค ๋ ์ฌ์ฉ๋ฉ๋๋ค. ์ด๋ฅผ ํตํด ์ฝ๋๋ฅผ ๋ ๊ฐ๊ฒฐํ๊ฒ ์์ฑํ ์ ์์ผ๋ฉฐ, ์ฝ๋์ ๊ฐ๋ ์ฑ๋ ํฅ์๋ฉ๋๋ค.
๊ธฐ๋ณธ ํ ๋น
var o = { p: 42, q: true };
var { p, q } = o;
console.log(p); // 42
console.log(q); // true
var a, b;
({ a, b } = { a: 1, b: 2 });
์ฐธ๊ณ : ํ ๋น ๋ฌธ์ ๋๋ฌ์ผ ( .. )๋ ์ ์ธ ์์ด ๊ฐ์ฒด ๋ฆฌํฐ๋ด(object literal) ๋น๊ตฌ์กฐํ ํ ๋น์ ์ฌ์ฉํ ๋ ํ์ํ ๊ตฌ๋ฌธ์ ๋๋ค.
{a, b} = {a:1, b:2}๋ ์ ํจํ ๋ ๋ฆฝ ๊ตฌ๋ฌธ์ด ์๋๋๋ค. ์ข๋ณ์ {a, b}์ด ๊ฐ์ฒด ๋ฆฌํฐ๋ด์ด ์๋ ๋ธ๋ก์ผ๋ก ๊ฐ์ฃผ๋๊ธฐ ๋๋ฌธ์ ๋๋ค. ํ์ง๋ง, ({a, b} = {a:1, b:2})๋ ์ ํจํ๋ฐ, var {a, b} = {a:1, b:2}์ ๊ฐ์ต๋๋ค.
( .. ) ํํ์ ์์๋ ์ธ๋ฏธ์ฝ๋ก ์ด ์์ด์ผ ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ ์ด์ ์ค๊ณผ ์ฐ๊ฒฐ๋์ด ํจ์๋ฅผ ์คํํ๋๋ฐ ์ด์ฉ๋ ์ ์์ต๋๋ค.
var o = { p: 42, q: true };
var { p: foo, q: bar } = o;
console.log(foo); // 42
console.log(bar); // true