λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
[개발] Practice/JavaScript ES6

[JavaScript / ES6] Arrow function μ•Œμ•„λ³΄κΈ°

by Connecting-the-dots 2022. 4. 10.
728x90
λ°˜μ‘ν˜•

πŸ’‘ μ‹€μŠ΅ 포인트!

πŸ’œ ν•¨μˆ˜λ₯Ό λ§Œλ“œλŠ” 이유 μ‚΄νŽ΄λ³΄κΈ°

  • μ—¬λŸ¬κ°€μ§€ κΈ°λŠ₯을 ν•˜λŠ” μ½”λ“œλ₯Ό ν•œ λ‹¨μ–΄λ‘œ λ¬Άκ³  싢을 λ•Œ, λ‚˜μ€‘μ— μž¬μ‚¬μš©ν•˜κΈ° μœ„ν•΄μ„œ μ‚¬μš©ν•œλ‹€.
  • μž…μΆœλ ₯ κΈ°λŠ₯을 λ§Œλ“€κ³  싢을 λ•Œ μ‚¬μš©ν•œλ‹€.

 

πŸ“Œ μž…μΆœλ ₯ κΈ°λŠ₯μ΄λž€

  • μž…μΆœλ ₯ κΈ°λŠ₯을 μ‚΄νŽ΄λ³΄κΈ° 전에 ν•¨μˆ˜λΆ€ν„° μ‚΄νŽ΄λ³΄μžλ©΄, ν•¨μˆ˜λŠ” μˆ˜ν•™μ—μ„œ 온 κ°œλ…μœΌλ‘œ input 을 λ„£μ—ˆμ„ λ•Œ λ­”κ°€ μƒˆλ‘œμš΄ output 을 좜λ ₯ν•΄μ£ΌλŠ” λ°•μŠ€κ°™μ€ 것이닀.
  • 예λ₯Ό λ“€μ–΄, f(x) = x + 2 λΌλŠ” 식이 μžˆμ„ λ•Œ f(2) λŠ” 4κ°€ λ˜λŠ”λ°, 이 λ•Œ f(x) κ°€ x 에 2λ₯Ό λ”ν•΄μ£ΌλŠ” λ°•μŠ€, 즉 ν•¨μˆ˜μ— ν•΄λ‹Ήν•˜λŠ” 것이닀.

 

function add2(x){
  return x + 2
}
  • 그리고 ν”„λ‘œκ·Έλž˜λ°μ—μ„œλŠ” μœ„μ™€ 같은 λ¬Έλ²•μœΌλ‘œ ν•¨μˆ˜λ₯Ό ν‘œν˜„ν•  수 μžˆλ‹€.
  • ν•¨μˆ˜μ˜ μ†Œκ΄„ν˜Έ μ•ˆμ—λŠ” input 역할을 ν•˜λŠ” νŒŒλΌλ―Έν„° x κ°€ 있고, ν•¨μˆ˜ 내에 return 이 output 역할을 ν•œλ‹€.
  • μ΄λ ‡κ²Œ μ†Œκ΄„ν˜Έ μ•ˆμ— λ­”κ°€ λ„£κ³  νŠΉμ •ν•œ 과정을 거친 후에 return 을 톡해 좜λ ₯ν•΄μ£ΌλŠ” 것이 λ°”λ‘œ ν•¨μˆ˜μ˜ μž…μΆœλ ₯ κΈ°λŠ₯이닀.

πŸ’œ Arrow function 문법 μ•Œμ•„λ³΄κΈ°

  • ES6 문법 μ΄ν›„λΆ€ν„°λŠ” arrow function μ΄λΌλŠ” JavaScript μ—μ„œ ν•¨μˆ˜λ₯Ό λ§Œλ“€ 수 μžˆλŠ” 문법이 μƒˆλ‘œ λ“±μž₯ν–ˆλ‹€.
// ν•¨μˆ˜ λ§Œλ“œλŠ” 방법 1.
function ν•¨μˆ˜λͺ…(){
  // μ‹€ν–‰ν•  μ½”λ“œ
}

// ν•¨μˆ˜ λ§Œλ“œλŠ” 방법 2.
var ν•¨μˆ˜λͺ… = function(){
  // μ‹€ν–‰ν•  μ½”λ“œ
}
  • 기쑴에 JavaScript μ—μ„œλŠ” ν•¨μˆ˜λ₯Ό μœ„μ™€ 같이 λ§Œλ“  후에 ν•¨μˆ˜λͺ…(); 으둜 μ½”λ“œλ₯Ό μ‹€ν–‰ν–ˆλ‹€.

 

var ν•¨μˆ˜λͺ… = () => {
  // μ‹€ν–‰ν•  μ½”λ“œ
}
  • function μ΄λΌλŠ” κΈΈκ³  λ³΅μž‘ν•œ ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ λ§Œλ“€λ˜ ν•¨μˆ˜λ₯Ό μ΄μ œλŠ” ES6 신문법을 μ‚¬μš©ν•˜μ—¬, μœ„μ™€ 같이 ν™”μ‚΄ν‘œ(=>)λ§Œμ„ 가지고도 λ§Œλ“€ 수 있게 λ˜μ—ˆλ‹€.

πŸ’œ Arrow function 문법 μž₯점

🀍 μž…μΆœλ ₯ constructor λ₯Ό λ§Œλ“€ λ•Œ, 보기가 쉽닀.

let func1 = (num) => { return num + 10};
func1(5); // 15

🀍 νŒŒλΌλ―Έν„°κ°€ 1개일 λ•Œ μ†Œκ΄„ν˜Έ μƒλž΅μ΄ κ°€λŠ₯ν•˜λ‹€.

let func2 = num => { return num + 10};
func2(5); // 15

🀍 μ½”λ“œκ°€ ν•œ 쀄이면 μ€‘κ΄„ν˜Έ 및 return 도 μƒλž΅μ΄ κ°€λŠ₯ν•˜λ‹€.

let func3 = num => num + 10;
func3(5); // 15

πŸ’œ Arrow function 문법 μ˜ˆμ‹œ

🀍 forEach μ½œλ°±ν•¨μˆ˜

[1,2,3,4].forEach(function(el){
	console.log(el);  // 1,2,3,4
});

[1,2,3,4].forEach( el => console.log(el) );  // 1,2,3,4

🀍 eventListener

<button id="btn">λ²„νŠΌ</button>

 

document.getElementById('btn').addEventListener('click', function(){
	console.log(this);  // <button id="btn">λ²„νŠΌ</button>
});

document.getElementById('btn').addEventListener('click', (e)=>{
	console.log(this);  // window
	console.log(e.currentTarget);  // <button id="btn">λ²„νŠΌ</button>
});
  • 일반 function eventListener μ—μ„œ this λŠ” e.currentTarget
  • arrow function eventListener μ—μ„œ this λŠ” function λ°–μ˜ this κ·ΈλŒ€λ‘œ μ‚¬μš©

🀍 Object μ•ˆμ˜ ν•¨μˆ˜

let obj3 = {
    func3 : () => {
    	console.log(this);
    }
}

obj3.func3();  // window

 

728x90
λ°˜μ‘ν˜•