๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
JavaScript/JavaScript

ํ•จ์ˆ˜ ์„ ์–ธ๋ฌธ๊ณผ ํ•จ์ˆ˜ ํ‘œํ˜„์‹

by ์ฝ”๋”ฉํ•˜๋Š” ๋ถ•์–ด 2021. 11. 16.
๋ฐ˜์‘ํ˜•

ํ•จ์ˆ˜ ์„ ์–ธ๋ฌธ

function ์ •์˜๋ถ€๋งŒ ์กด์žฌํ•˜๊ณ  ๋ณ„๋„์˜ ํ• ๋‹น ๋ช…๋ น์ด ์—†๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.
๋ฐ˜๋“œ์‹œ ํ•จ์ˆ˜๋ช…์ด ์ •์˜๋ผ ์žˆ์–ด์•ผ ํ•œ๋‹ค. (๊ธฐ๋ช… ํ•จ์ˆ˜ ํ‘œํ˜„์‹)

 

๊ธฐ๋ช… ํ•จ์ˆ˜ ํ‘œํ˜„์‹์€ ์ฃผ์˜ํ•  ์ ์ด ํ•˜๋‚˜ ์žˆ๋‹ค.

๋ฐ”๋กœ ์™ธ๋ถ€์—์„œ๋Š” ํ•จ์ˆ˜๋ช…์œผ๋กœ ํ˜ธ์ถœํ•  ์ˆ˜ ์—†๋‹ค๋Š” ์ ์ด๋‹ค.
ํ•จ์ˆ˜๋ช…์€ ์˜ค์ง ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ๋งŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.

 

ํ•จ์ˆ˜ ํ‘œํ˜„์‹

์ •์˜ํ•œ function์„ ๋ณ„๋„์˜ ๋ณ€์ˆ˜์— ํ• ๋‹นํ•˜๋Š” ๊ฒƒ
ํ•จ์ˆ˜๋ช…์ด ์ •์˜๋˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค. (์ต๋ช… ํ•จ์ˆ˜ ํ‘œํ˜„์‹)

์ผ๋ฐ˜์ ์œผ๋กœ ํ•จ์ˆ˜ ํ‘œํ˜„์‹์€ ์ต๋ช… ํ•จ์ˆ˜ ํ‘œํ˜„์‹์„ ๋งํ•œ๋‹ค.

 

 

๐ŸŽˆํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•˜๋Š” ์„ธ ๊ฐ€์ง€ ๋ฐฉ์‹

function a () { }  // ํ•จ์ˆ˜ ์„ ์–ธ๋ฌธ. ํ•จ์ˆ˜๋ช… a๊ฐ€ ๊ณง ๋ณ€์ˆ˜๋ช…
a();  // ์‹คํ–‰

var b = function () { }  // (์ต๋ช…) ํ•จ์ˆ˜ ํ‘œํ˜„์‹. ๋ณ€์ˆ˜๋ช… b๊ฐ€ ๊ณง ํ•จ์ˆ˜๋ช…
b();  // ์‹คํ–‰

var c = function d () { }  // ๊ธฐ๋ช… ํ•จ์ˆ˜ ํ‘œํ˜„์‹. ๋ณ€์ˆ˜๋ช…์€ c, ํ•จ์ˆ˜๋ช…์€ d
c();  // ์‹คํ–‰
d();  // ERROR

 

๐Ÿ‘‰๐Ÿป ํ•จ์ˆ˜ ์„ ์–ธ๋ฌธ๊ณผ ํ•จ์ˆ˜ ํ‘œํ˜„์‹(1) - ์›๋ณธ ์ฝ”๋“œ

console.log(sum(1, 2));
console.log(multiply(3, 4));

function sum (a, b) {  // ํ•จ์ˆ˜ ์„ ์–ธ๋ฌธ sum
  return a + b;
}

var multiply = function (a, b) {  // ํ•จ์ˆ˜ ํ‘œํ˜„์‹ multiply
  return a * b;
}

 

๐Ÿ‘‰๐Ÿป ํ•จ์ˆ˜ ์„ ์–ธ๋ฌธ๊ณผ ํ•จ์ˆ˜ ํ‘œํ˜„์‹(2) - ํ˜ธ์ด์ŠคํŒ…์„ ๋งˆ์นœ ์ƒํƒœ

var sum = function sum (a, b) {  // ํ•จ์ˆ˜ ์„ ์–ธ๋ฌธ์€ ์ „์ฒด๋ฅผ ํ˜ธ์ด์ŠคํŒ…ํ•ฉ๋‹ˆ๋‹ค.
  return a + b;
};

var multiply;  // ๋ณ€์ˆ˜๋Š” ์„ ์–ธ๋ถ€๋งŒ ๋Œ์–ด์˜ฌ๋ฆฝ๋‹ˆ๋‹ค.

console.log(sum(1, 2));
console.log(multiply(3, 4));

multiply = function (a, b) {  // ๋ณ€์ˆ˜์˜ ํ• ๋‹น๋ถ€๋Š” ์›๋ž˜ ์ž๋ฆฌ์— ๋‚จ๊ฒจ๋‘ก๋‹ˆ๋‹ค.
  return a * b;
};

ํ•จ์ˆ˜ ์„ ์–ธ๋ฌธ์€ ์ „์ฒด๋ฅผ ํ˜ธ์ด์ŠคํŒ…ํ•œ ๋ฐ˜๋ฉด ํ•จ์ˆ˜ ํ‘œํ˜„์‹์€ ๋ณ€์ˆ˜ ์„ ์–ธ๋ถ€๋งŒ ํ˜ธ์ด์ŠคํŒ…ํ–ˆ๋‹ค.
ํ•จ์ˆ˜๋„ ํ•˜๋‚˜์˜ ๊ฐ’์œผ๋กœ ์ทจ๊ธ‰ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด ๋ฐ”๋กœ ์ด๋Ÿฐ ๊ฒƒ์ด๋‹ค. ํ•จ์ˆ˜๋ฅผ ๋‹ค๋ฅธ ๋ณ€์ˆ˜์— ๊ฐ’์œผ๋กœ์จ 'ํ• ๋‹น'ํ•œ ๊ฒƒ์ด ๊ณง ํ•จ์ˆ˜ ํ‘œํ˜„์‹์ด๋‹ค.

 

 

 

๐Ÿ”ฅ ํ•จ์ˆ˜ ์„ ์–ธ๋ฌธ์˜ ์œ„ํ—˜์„ฑ

์‹ค๋ฌด์—์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ํ˜„์‹ค์ ์ธ ์˜ˆ๊ฐ€ ์žˆ๋‹ค.
๊ฐœ๋ฐœ์ž A๊ฐ€ sum ํ•จ์ˆ˜ ์„ ์–ธ์„ ํ–ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์–ด๋Š๋‚  ์ƒˆ๋กœ ์ž…์‚ฌํ•œ B๊ฐ€ ๊ฐ™์€ ํŒŒ์ผ์˜ 5000๋ฒˆ์งธ ์ค„์—์„œ sum ํ•จ์ˆ˜๋ฅผ ์ƒˆ๋กœ ์„ ์–ธํ–ˆ๋‹ค.
๋™์ผํ•œ ๋ณ€์ˆ˜๋ช…์— ์„œ๋กœ ๋‹ค๋ฅธ ๊ฐ’์„ ํ• ๋‹นํ•  ๊ฒฝ์šฐ ๋‚˜์ค‘์— ํ• ๋‹นํ•œ ๊ฐ’์ด ๋จผ์ € ํ• ๋‹นํ•œ ๊ฐ’์„ ๋ฎ์–ด์”Œ์šด๋‹ค. ๋”ฐ๋ผ์„œ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์ค‘์— ์‹ค์ œ๋กœ ํ˜ธ์ถœ๋˜๋Š” ํ•จ์ˆ˜๋Š” ์˜ค์ง ๋งˆ์ง€๋ง‰์— ํ• ๋‹นํ•œ ํ•จ์ˆ˜, ์ฆ‰ ๋งจ ๋งˆ์ง€๋ง‰์— ์„ ์–ธํ•œ ํ•จ์ˆ˜๋ฟ์ด๋‹ค.


์ด ๋•Œ, A์™€ B ๋ชจ๋‘ sum ํ•จ์ˆ˜๋ฅผ ํ•จ์ˆ˜ ํ‘œํ˜„์‹์œผ๋กœ ์ •์˜ํ–ˆ๋‹ค๋ฉด 5000๋ฒˆ์งธ ์ค„ ์ด์ „๊นŒ์ง€๋Š” A์˜ ์˜๋„๋Œ€๋กœ, 5000๋ฒˆ์งธ ์ค„ ์ดํ›„๋ถ€ํ„ฐ๋Š” B์˜ ์˜๋„๋Œ€๋กœ ์ž˜ ๋™์ž‘ํ–ˆ์„ ๊ฒƒ์ด๋‹ค.

function sum (x, y) {  // ๐Ÿ’ฉ
  return x + y;
}
var sum = function (x, y) {  // ๐Ÿ‘๐Ÿป
  return x * y;
}

์›ํ™œํ•œ ํ˜‘์—…์„ ์œ„ํ•ด์„œ๋Š” ์ „์—ญ๊ณต๊ฐ„์— ํ•จ์ˆ˜๋ฅผ ์„ ์–ธํ•˜๊ฑฐ๋‚˜ ๋™๋ช…์˜ ํ•จ์ˆ˜๋ฅผ ์ค‘๋ณต ์„ ์–ธํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ์—†์–ด์•ผ ํ•œ๋‹ค.

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€