[Javascript] ES6: Reflect
Reflect๋ ๋ง ๊ทธ๋๋ก ๋ฆฌํ๋ ์
์ฒ๋ฆฌ์ฉ ๊ฐ์ฒด๋ค.
๋ฆฌํ๋ ์
์ด๋ ์ผ๋ฐ์ ์ผ๋ก ๋ฐํ์์ ๋ฉ์๋ ๋ฑ์ ์ฒดํฌํ๊ฑฐ๋ ์ฃผ์
ํ๋ ๊ฒ์ ๋งํ๋ค.
์ฌ์ค ์๋ฐ์คํฌ๋ฆฝํธ๋ ์ด๊ฒ ์์ด๋ ์ผ๋ง๋ ์ง ์กฐ์์ด ๊ฐ๋ฅํ์ง๋ผ ๊ผญ ํ์ํ ๊ฑด ์๋๋ค๋ง. ์ฝ๊ฐ์ ํธ์์ฑ๊ณผ, ๊ฐ๋ ์ฑ/์ง๊ด์ฑ์ ์์น์ํฌ ์ ์๋ค๋ ์ ์์ ์ฅ์ ์ด ์๋ค๊ณ ํ๊ฒ ๋ค.
ํ๋กํผํฐ ์ฒดํฌ(has)
ํน์ ๊ฐ์ฒด์ ํน์ ๋ฉค๋ฒ๊ฐ ์กด์ฌํ๋์ง ์ฒดํฌํด์ฃผ๋ ๊ธฐ๋ฅ์ด๋ค.
in ์ฐ์ฐ์์ ๋์ผํ๋ค.


ํ๋กํผํฐ ํ๋(get)
ํ๋กํผํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒ์ get ํจ์๋ก ์ฒ๋ฆฌํ ์ ์๋ค.

๋ค๋ง ์ฌ๊ธฐ์ ๋ฉ์๋๋ฅผ ๊ฐ์ ธ์ฌ ๋ ์ฃผ์์ ์

๋ฉ์๋์ ์ปจํ
์คํธ๊น์ง ๊ฐ์ ธ์ค์ง๋ ์๊ธฐ ๋๋ฌธ์ this๊ฐ ์์ด์ ๋ฐ๋ก ํธ์ถ์ ๋ถ๊ฐ๋ฅํ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค๋ ๊ฒ์ด๋ค.
ํ๋กํผํฐ์ ์ถ๊ฐ(defineProperty)
ํ๋กํผํฐ๋ฅผ ์ถ๊ฐํ๊ณ ์ถ๋ค๋ฉด defineProperty๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.
์์๋๋ก ์ถ๊ฐํ ๋์, ์ถ๊ฐํ ํ๋กํผํฐ๋ช
, ๊ทธ๋ฆฌ๊ณ ๊ฐ์ ๋ฃ์ด์ฃผ๋ฉด ๋๋ค.
์ฃผ์
ํ ๊ฐ์ ์ค๋ธ์ ํธ์ value ํ๋์ ๋ฃ์ด์ค๋ค.


๋์ถฉ ์ด๋ฐ ๊ธฐ๋ฅ๋ค์ด ๋ด๊ฒจ์๋ค.
์ด์ธ์ ๊ธฐ๋ฅ๋ค์ ์๋ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ๊ธธ ๋ฐ๋๋ค.
์์ผ๋๊น ์ ๋ฆฌํด๋ณด๊ธฐ๋ ํ๋๋ฐ, ๊ตณ์ด ์ธ์ผ์ด ์์๋ฐ์ง๋ ์ ๋ชจ๋ฅด๊ฒ ๋ค.
์ฐธ์กฐ
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Reflect