๊ด€๋ฆฌ ๋ฉ”๋‰ด

ruriruriya

[JavaScript] ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ - ํ™”์‚ดํ‘œ ํ•จ์ˆ˜(Arrow Function) ๋ณธ๋ฌธ

๐Ÿ–Œ๏ธWeb/JavaScript

[JavaScript] ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ - ํ™”์‚ดํ‘œ ํ•จ์ˆ˜(Arrow Function)

๋ฃจ๋ฆฌ์•ผใ…‘ 2024. 4. 23. 16:09
๋ฐ˜์‘ํ˜•

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ํ™”์‚ดํ‘œ ํ•จ์ˆ˜(arrow function)๋Š” ES6์—์„œ ๋„์ž…๋œ ๋ฌธ๋ฒ•์œผ๋กœ, ํ•จ์ˆ˜๋ฅผ ๋ณด๋‹ค ๊ฐ„๊ฒฐํ•˜๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๋Š” ๊ธฐ์กด์˜ function ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ•จ์ˆ˜ ํ‘œํ˜„์‹์„ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ช‡ ๊ฐ€์ง€ ์ค‘์š”ํ•œ ์ฐจ์ด์ ์ด ์žˆ๋‹ค.

 

ํ™”์‚ดํ‘œ ํ•จ์ˆ˜์˜ ๊ธฐ๋ณธ ๊ตฌ์กฐ

์—ฌ๊ธฐ์—์„œ functionName์€ ํ•จ์ˆ˜์˜ ์ด๋ฆ„,
parameters๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜,
=>๋Š” ํ™”์‚ดํ‘œ ๊ธฐํ˜ธ๋กœ,
์˜ค๋ฅธ์ชฝ์—๋Š” ํ•จ์ˆ˜์˜ ๋ณธ๋ฌธ์ด ์œ„์น˜ํ•œ๋‹ค.

const functionName = (parameters) => {
  // ํ•จ์ˆ˜ ๋ณธ๋ฌธ
}

 

ํ™”์‚ดํ‘œ ํ•จ์ˆ˜์˜ ํŠน์ง•

  • ๊ฐ„๊ฒฐ์„ฑ: ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๋Š” function ํ‚ค์›Œ๋“œ๋ฅผ ์ƒ๋žตํ•˜๊ณ , ํ•จ์ˆ˜ ๋ณธ๋ฌธ์ด ๋‹จ์ผ ํ‘œํ˜„์‹์ธ ๊ฒฝ์šฐ ์ค‘๊ด„ํ˜ธ์™€ return ๋ฌธ์„ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด:์ด ํ•จ์ˆ˜๋Š” a์™€ b๋ฅผ ๋”ํ•œ ๊ฐ’์„ ์ž๋™์œผ๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
const add = (a, b) => a + b;
  • this ๋ฐ”์ธ๋”ฉ์˜ ์ฐจ์ด: ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๋Š” ์ž์ฒด this ๋ฐ”์ธ๋”ฉ์„ ๊ฐ€์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋Œ€์‹ , ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๋Š” ์ž์‹ ์„ ํฌํ•จํ•˜๋Š” ์™ธ๋ถ€ ํ•จ์ˆ˜์˜ this ๊ฐ’์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋ฉ”์†Œ๋“œ ํ•จ์ˆ˜๋‚˜ ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋กœ๋Š” ์ ํ•ฉํ•˜์ง€ ์•Š์ง€๋งŒ, ์ผ๋ฐ˜ ํ•จ์ˆ˜์—์„œ this์˜ ๋ฌธ๋งฅ์ด ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ƒ์„ฑ์ž๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ: new ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๋ฅผ ์ƒ์„ฑ์ž๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๋Š” prototype ์†์„ฑ์ด ์—†์Šต๋‹ˆ๋‹ค.
  • ์ธ์ˆ˜ ๊ฐ์ฒด(arguments) ๋ฏธ์ง€์›: ํ™”์‚ดํ‘œ ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ๋Š” arguments ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋Œ€์‹ , ๋‚˜๋จธ์ง€ ๋งค๊ฐœ๋ณ€์ˆ˜(rest parameters)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•จ์ˆ˜์— ์ „๋‹ฌ๋œ ์ธ์ˆ˜๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์˜ˆ์‹œ

[๊ฐ„๋‹จํ•œ ํ™”์‚ดํ‘œ ํ•จ์ˆ˜]

const greet = name => `Hello, ${name}!`;
console.log(greet("World")); // "Hello, World!"

 

[์ค‘๊ด„ํ˜ธ์™€ return ์‚ฌ์šฉ]

const getFullName = (firstName, lastName) => {
  return `${firstName} ${lastName}`;
};
console.log(getFullName("Jane", "Doe")); // "Jane Doe"

 

[ํ•จ์ˆ˜์— ๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด ๋ฐ˜ํ™˜]

const getObject = () => ({ key: 'value' });
console.log(getObject()); // { key: 'value' }

 

 

ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๋Š” ํŠนํžˆ ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋‚˜ ํ•จ์ˆ˜๊ฐ€ ๋‹ค๋ฅธ ํ•จ์ˆ˜์— ์ „๋‹ฌ๋˜์–ด์•ผ ํ•  ๋•Œ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉ๋œ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ this๋‚˜ ์ƒ์„ฑ์ž, arguments์™€ ๊ด€๋ จ๋œ ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋Š” ๊ธฐ์กด์˜ function ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๊ณ ๋ คํ•ด์•ผ ํ•œ๋‹ค.

 

๋ฐ˜์‘ํ˜•