๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
javascript/๐Ÿ“– study

[3์ฃผ์ฐจ ์Šคํ„ฐ๋””]18์žฅ-ํ•จ์ˆ˜์™€ ์ผ๊ธ‰๊ฐ์ฒด

by HomieKim 2022. 2. 14.

ํ•จ์ˆ˜์™€ ์ผ๊ธ‰ ๊ฐ์ฒด

  • ๋‹ค์Œ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ๊ฐ์ฒด๋ฅผ ์ผ๊ธ‰ ๊ฐ์ฒด ๋ผ๊ณ  ํ•œ๋‹ค.

    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๋งŒ์ด ์†Œ์œ ํ•˜๋Š” ํ”„๋กœํผํ‹ฐ
  • ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋กœ ํ˜ธ์ถœ๋  ๋•Œ ์ƒ์„ฑ์ž ํ•จ์ˆ˜๊ฐ€ ์ƒ์„ฑํ•  ์ธ์Šคํ„ด์Šค์˜ ํ”„๋กœํ†  ํƒ€์ž… ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค.

๋Œ“๊ธ€