์ฝ๋ฐฑํจ์ ์คํํ๋ ๋ฒ.
ํ๋ผ๋ฏธํฐ์์ ํจ์๋ช
/ํจ์์ ์ธ
๋ฃ์ด์ฃผ๊ณ 1๋ฒ์ผ๋ก ์คํํ ํจ์ {}์์ 2๋ฒ์ผ๋ก ์คํํ ํจ์()
๋ฃ์ด์ค.
๊ทธ๋ฆฌ๊ณ 1๋ฒ ํจ์ ํธ์ถํ์
. ์ด๊ฑด ์ดํด๊ณ ์์๊ณ ๊ทธ๋ฅ ์ธ์ฐ๋ฉด ๋จ.
function ์ฒซ์งธํจ์(์ด์ฉ๊ตฌํจ์){
console.log(1)
์ด์ฉ๊ตฌํจ์()}
function ๋์งธํจ์(){
console.log(2)}
์ฒซ์งธํจ์(๋์งธํจ์)// 1
// 2
์ฒซ์งธํจ์(๋์งธํจ์)
์ฒ๋ผ ํจ์๋ช
์ ๋ฃ์ด์ค๋ ๋๊ณ ์๋๋ฉด
์ฒซ์งธํจ์(function(){
๋์งธํจ์()})
์ด๋ ๊ฒ ํ๋ผ๋ฏธํฐ ์์์ ์์ ํจ์๋ฅผ ๋ง๋ค์ด ๋ฃ์ด์ค๋ ๋๋ค.
๊ทผ๋ฐ ์ด๋ ๊ฒ ์์ ํ๊ฒ ๋์งธํจ์๋ง ๋ฃ์ผ๋ฉด ๋ฌธ์ ๊ฐ ์๋๋ฐ,
์ธ๊ฐ์ ์์ฌ์ ๋์ด ์๋์ง๋ผ 1๋ฒ ํจ์->2๋ฒ ํจ์->3๋ฒ ํจ์->4๋ฒ ํจ์->..์ด๋ ๊ฒ ๋ฃ์ด์
์์ฐจ๋๋ก ์ค์ํ๊ณ ์ถ์ ๋ง์์ด ๋๋ ๊ฒ์ด๋ค.
function ์ฒซ์งธํจ์(๊ตฌ๋ฉ) {
console.log(1);
๊ตฌ๋ฉ();
}
function ๋์งธํจ์(๊ตฌ๋ฉ1) {
console.log(2);
๊ตฌ๋ฉ1();
}
function ์
์งธํจ์(๊ตฌ๋ฉ2) {
console.log(3);
๊ตฌ๋ฉ2();
}
function ๋ท์งธํจ์() {
console.log(4);
}
์ฒซ์งธํจ์(function () {
๋์งธํจ์(function () {
์
์งธํจ์(function () {
๋ท์งธํจ์();
});
});
});
์ด๋ ๊ฒ ์ฝ๋ฐฑ์ง์ฅ์ด ํ์ํ์๋ค.
์ด๋ ๊ฒ ๋๋ฉด ์ฝ์์ 1 2 3 4 ๊ฐ ์ฐจ๋ก๋๋ก ์ถ๋ ฅ์ ๋์ง๋ง ๊ฐ๋
์ฑ์ด ๋งค์ฐ๋งค์ฐ ํ์ ํ ๋จ์ด์ง๋ค๋ ๋จ์ ์ด ์๋ค.
๊ทธ๋์ ์ด ๋๊ด์ ํค์ณ๋๊ฐ๋ ๋ฐฉ๋ฒ์ผ๋ก ๋ ๊ฐ์ง๋ฅผ ์๊ฐํ๋ ค ํ๋ค.
(1) Promise
(2) async/ await
๊ธ์ด ๊ธธ์ด์ง ๊ฒ ๊ฐ์ผ๋ ๋ค์์ฅ์ผ๋ก ๊ณ ๊ณ ~!