Computer Programming/Javascript
2023. 6. 12.
์๋ฐ์คํฌ๋ฆฝํธ์ ์ผ๊ธ ๊ฐ์ฒด(First-class Function)๋ก์์ ํจ์
1. ์ผ๊ธ๊ฐ์ฒด(First-class Object)๋? ์ผ๊ธ๊ฐ์ฒด๋ ๋ค๋ฅธ ๊ฐ์ฒด๋ค์ ์ผ๋ฐ์ ์ผ๋ก ์ ์ฉ ๊ฐ๋ฅํ ์ฐ์ฐ์ ๋ชจ๋ ์ง์ํ๋ ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํจ๋ค. ์ฆ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ํจ์๊ฐ ๋ค๋ฅธ ๋ณ์์ฒ๋ผ ๋ค๋ฃจ์ด์ง ๋ ์ผ๊ธํจ์๋ฅผ ๊ฐ์ง๋ค๊ณ ํ๋ค. ์ผ๊ธํจ์๋ฅผ ๊ฐ์ง ์ธ์ด์์ ํจ์๋ ๋ค๋ฅธ ํจ์๋ค์ ์ ๋ฌ์ธ์๋ก ์ ๊ณต๋๊ณ , ๋ค๋ฅธ ํจ์์ ์ํด ๋ฐํ๋ ์ ์์ผ๋ฉฐ, ๋ณ์์ ๊ฐ์ผ๋ก์ ํ ๋น๋ ์ ์๋ค. ์๋ฐ์คํฌ๋ฆฝํธ๋ ํจ์๋ฅผ ๊ฐ์ฒด๋ก ์ทจ๊ธํ๊ธฐ ๋๋ฌธ์, ํจ์๋ฅผ ๋งค์ฐ ์ ์ฐํ๊ฒ ์ฌ์ฉํ ์ ์๋ค. first-class ๋ผ๋ ๋จ์ด ๊ทธ๋๋ก ์์ ๋กญ๊ฒ ๋ค๋ฅธ ๊ฐ์ฒด๋ค์๊ฒ ์ ์ฉ ๊ฐ๋ฅํ ์ฐ์ฐ์ ์ง์ํ๋ค. ์ผ๊ธ ๊ฐ์ฒด์ ์กฐ๊ฑด์ ์๋์ ๊ฐ๋ค. 1) ๋ณ์๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ ์์ ๊ฐ์ฒด๋ฅผ ๋ด์ ์ ์๋ค. 2) ํ๋ผ๋ฏธํฐ๋ก ์ ๋ฌํ ์ ์๋ค. 3) ๋ฆฌํด ๊ฐ์ผ๋ก ์ฌ์ฉํ ์ ์๋ค. 2. ์ผ๊ธ๊ฐ..