λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
ν”„λ‘ νŠΈμ—”λ“œ/JavaScript

μ¦‰μ‹œ μ‹€ν–‰ ν•¨μˆ˜

by alswlfl 2023. 1. 6.

μ¦‰μ‹œ μ‹€ν–‰ ν•¨μˆ˜, IIFE(Immediately-involked-function): μ¦‰μ‹œ μ‹€ν–‰λ˜λŠ” ν•¨μˆ˜

주둜 ν•¨μˆ˜λ₯Ό μ„ μ–Έν•˜μžλ§ˆμž λ°”λ‘œ ν˜ΈμΆœμ„ ν•  λ•Œ μ‚¬μš©

 

μ¦‰μ‹œ μ‹€ν–‰ ν•¨μˆ˜λ₯Ό μ‚¬μš©μ΄μœ 

const a=1;
function ong(x){
	document.write(x+1);
}
ong(a);
  • ongν•¨μˆ˜κ°€ 호좜되면, λ¬Έμ„œμ— λ§€κ°œλ³€μˆ˜ x에 1을 λ”ν•œ 값을 씀
  • ν•¨μˆ˜ ν‘œν˜„μ€ ν•¨μˆ˜λ₯Ό μ •μ˜ν•˜κ³ , λ³€μˆ˜μ— ν•¨μˆ˜λ₯Ό μ €μž₯ν•˜κ³  μ‹€ν–‰ν•˜λŠ” 과정인 반면, μ¦‰μ‹œ μ‹€ν–‰ν•¨μˆ˜λŠ” ν•¨μˆ˜λ₯Ό μ •μ˜ν•˜κ³  λ°”λ‘œ μ‹€ν–‰ → 즉, ν•¨μˆ˜λ₯Ό μƒμ„±ν•˜κ³  λ”°λ‘œ ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•˜λŠ” 것이 μ•„λ‹ˆλΌ, ν•¨μˆ˜λ₯Ό μ •μ˜ν•˜μžλ§ˆμž λ°”λ‘œ ν•¨μˆ˜λ₯Ό μ‹€ν–‰ν•˜λŠ” 방식

1. μ΄ˆκΈ°ν™” μ½”λ“œ 뢀뢄에 μ‚¬μš©

: λ³€μˆ˜λ₯Ό μ „μ—­μœΌλ‘œ μ„ μ–Έν•˜λŠ” 것을 ν”Όν•˜κΈ° μœ„ν•˜μ—¬(μ½”λ“œ μΆ©λŒμ—†μ΄ κ΅¬ν˜„ κ°€λŠ₯)

ex)

var initText();

(function (number){
	var textList=["is Odd Text", "is Even Text"];
    if (number %2 == 0){
    	initText=textList[1];
    } else {
    	initText=textList[0];
    }
})(5);

console.log(initText);
//is Odd Text
console.log(textList);
//μ—λŸ¬ λ°œμƒ

2. 라이브러리 μ „μ—­ λ³€μˆ˜ 좩돌 ν•΄κ²°

jQueryλ‚˜ Prototype λΌμ΄λΈŒλŸ¬λ¦¬λŠ” λ™μΌν•œ $λΌλŠ” μ „μ—­ λ³€μˆ˜ μ‚¬μš© → 두 라이브러리λ₯Ό 같이 μ‚¬μš©ν•˜λ©΄ $λ³€μˆ˜ 좩돌 생김

ex)

(function ($){
	//$λŠ” jQuery object
})(jQuery);

 

μ¦‰μ‹œ μ‹€ν–‰ ν•¨μˆ˜ μ‚¬μš© 방법

const a=1;

//두가지 방식 쑴재
// 1. (function{})()
(function (){
	document.write(a+1);
})();

// 2. (function{}())
(function (){
	document.write(a+1);
 }());

1. (function (){})()

2. (function (){}())

 

λ³€μˆ˜μ— μ¦‰μ‹œ μ‹€ν–‰ ν•¨μˆ˜ μ €μž₯ κ°€λŠ₯

(mySquare = function(x){
	console.log(x*x);
})(2);
//4
mySquare(3);
//9

 

⭐️ μ¦‰μ‹œ μ‹€ν–‰ ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•  λ•Œμ—λŠ” 전체 λ¬Έμž₯에 μ„Έλ―Έμ½œλ‘  μ΄μš©ν•΄μ•Όν•¨!

 

'ν”„λ‘ νŠΈμ—”λ“œ > JavaScript' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

λ³€μˆ˜μ™€ μƒμˆ˜  (0) 2022.11.18
μžλ°”μŠ€ν¬λ¦½νŠΈλž€?  (0) 2022.11.18