ํจ์์ ์ผ๊ธ ๊ฐ์ฒด
๋ค์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๊ฐ์ฒด๋ฅผ ์ผ๊ธ ๊ฐ์ฒด ๋ผ๊ณ ํ๋ค.
1.๋ฌด๋ช ์ ๋ฆฌํฐ๋ด๋ก ์์ฑ ๊ฐ๋ฅ (= ๋ฐํ์์ ์์ฑ ๊ฐ๋ฅ)
2.๋ณ์๋ ์๋ฃ๊ตฌ์กฐ์ ์ ์ฅ ๊ฐ๋ฅ
3.ํจ์์ ๋งค๊ฐ๋ณ์๋ก ์ ๋ฌ ๊ฐ๋ฅ
4 ํจ์์ ๋ฐํ๊ฐ์ผ๋ก ์ฌ์ฉ ๊ฐ๋ฅ
- ์๋ฐ์คํฌ๋ฆฝํธ์ ํจ์๋ ์ผ๊ธ ๊ฐ์ฒด
ํจ์๊ฐ์ฒด์ ํ๋กํผํฐ
- ํจ์๊ฐ์ฒด๋ ์ผ๋ฐ ๊ฐ์ฒด์ ์๋ ๊ณ ์ ์ ํ๋กํผํฐ๋ฅผ ๊ฐ์ง๋๋ค.
arguments
,caller,
length
,name
,__proto__
arguments ํ๋กํผํฐ
- ๋ชจ๋ ์ธ์๋ ์๋ฌต์ ์ผ๋ก arguments ๊ฐ์ฒด์ ํ๋กํผํฐ๋ก ๋ณด๊ด๋๋ค.
- ์๋ฐ์คํฌ๋ฆฝํธ์์ ํจ์์ ๋งค๊ฐ๋ณ์์ ์ธ์์ ๊ฐ์๊ฐ ์ผ์นํ๋ ์ง ํ์ธ ํ์ง ์์
- arguments ๊ฐ์ฒด๋ length ํ๋กํผํฐ๊ฐ ์๋ ์ ์ฌ ๋ฐฐ์ด ๊ฐ์ฒด ์ด๋ฏ๋ก ์ํ ๊ฐ๋ฅ(
iterable
)ํ๋ค - ๊ฐ๋ณ ์ธ์ ํจ์๋ฅผ ๊ตฌํํ ๋ ์ ์ฉ(ES6 ๋ถํฐ๋ Rest ํ๋ผ๋ฏธํฐ ์ฌ์ฉ)
caller ํ๋กํผํฐ
- ํจ์ ๊ฐ์ฒด์ caller ํ๋กํผํฐ๋ ํจ์ ์์ ์ ํธ์ถํ ํจ์๋ฅผ ๊ฐ๋ฆฌํจ๋ค.
length ํ๋กํผํฐ
- ํจ์๋ฅผ ์ ์ํ ๋ ์ ์ธํ ๋งค๊ฐ๋ณ์์ ๊ฐ์๋ฅผ ๊ฐ๋ฆฌํจ๋ค.
name ํ๋กํผํฐ
- ํจ์ ์ด๋ฆ์ ๋ํ๋
- es6์์๋ ํจ์ ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํค๋ ์๋ณ์๋ฅผ ๊ฐ์ผ๋ก ๊ฐ๋๋ค.
ํจ์๋ฅผ ํธ์ถํ ๋๋ ํจ์ ์ด๋ฆ์ด ์๋ ํจ์ ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํค๋ ์๋ณ์๋ก ํธ์ถ ํ๋ค.
__ proto __ ์ ๊ทผ์ ํ๋กํผํฐ
- ๋ชจ๋ ๊ฐ์ฒด๋ [[ Prototype ]] ์ด๋ผ๋ ๋ด๋ถ ์ฌ๋กฏ์ ๊ฐ์ต๋๋ค.
- ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ์์์ ๊ตฌํํ๋ ํ๋กํ ํ์ ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํจ๋ค.
- [[ Prototype ]] ๋ด๋ถ ์ฌ๋กฏ์ ์ง์ ์ ๊ทผํ ์ ์์ผ๋ฉฐ,
__proto__
์ ๊ทผ์ ํ๋กํผํฐ๋ฅผ ํตํด ๊ฐ์ ์ ์ผ๋ก ์ ๊ทผํฉ๋๋ค.
prototype ํ๋กํผํฐ
- ์์ฑ์ ํจ์๋ก ํธ์ถํ ์ ์๋ ๊ฐ์ฒด, ์ฆ
construct
๋ง์ด ์์ ํ๋ ํ๋กํผํฐ - ์์ฑ์ ํจ์๋ก ํธ์ถ๋ ๋ ์์ฑ์ ํจ์๊ฐ ์์ฑํ ์ธ์คํด์ค์ ํ๋กํ ํ์ ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํต๋๋ค.
'javascript > ๐ study' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[4์ฃผ์ฐจ ์คํฐ๋] 20์ฅ- strict mode (0) | 2022.02.23 |
---|---|
[3์ฃผ์ฐจ ์คํฐ๋]19์ฅ-ํ๋กํ ํ์ (0) | 2022.02.14 |
[3์ฃผ์ฐจ ์คํฐ๋] 17์ฅ-์์ฑ์ ํจ์ (0) | 2022.02.14 |
[3์ฃผ์ฐจ ์คํฐ๋] 16์ฅ ํ๋กํผํฐ, ์ดํธ๋ฆฌ๋ทฐํธ (0) | 2022.02.14 |
[2์ฃผ์ฐจ ์คํฐ๋]15์ฅ-let const ๋ธ๋ก ์ค์ฝํ (0) | 2022.02.06 |
๋๊ธ