์ผ๋ฐ function ์ฌ์ฉ ๋ฌธ๋ฒ
// 1
function ํจ์์ด๋ฆ(){
// ๊ธฐ๋ฅ
}
// 2
var ํจ์์ด๋ฆ = function(){
// ๊ธฐ๋ฅ
}
Arrow Function ์ฌ์ฉ ๋ฌธ๋ฒ
var ํจ์์ด๋ฆ = () => {
// ๊ธฐ๋ฅ
}
์ ์ฐ๋ ๊ฑธ๊น?
= ์ด๊ฑธ ์๋ฉด ์ธ์ ์ฐ๋ฉด ์ข์์ง๊ฐ ๋์จ๋ค.
1. ํจ์ ๋ณธ์ฐ์ ๊ธฐ๋ฅ์ ์์ฃผ ์ ํํํด์ฃผ๋ ๋ฌธ๋ฒ
์ฐ์ function์ ์ธ์ ์ฃผ๋ก ์ฌ์ฉํ๋๊ฐ..์ ๋ํด ์๊ฐํด๋ณด๋ฉด
1) ์ฌ๋ฌ๊ฐ์ง ๊ธฐ๋ฅ์ ํ๋ ์ฝ๋๋ฅผ ํ ๋จ์ด๋ก ๋ฌถ๊ณ ์ถ์ ๋. (์ดํ ์ฌ์ฌ์ฉ๋ ๊ณ ๋ ค..) 2) ์ ์ถ๋ ฅ๊ธฐ๋ฅ์ ๋ง๋ค ๋
var ๋๋ฐฐ๋ง๋ค๊ธฐ = (x) => {return x * 2 }
console.log( ๋๋ฐฐ๋ง๋ค๊ธฐ(4) );
console.log( ๋๋ฐฐ๋ง๋ค๊ธฐ(8) );
์ด๋ฐ ์์ผ๋ก ์ฌ์ฉํ๋ฉด ์ง๊ด์ ์ผ๋ก ๋ณด๊ธฐ๊ฐ ํธํด์ง๋ค. ์ดํดํ๊ธฐ๊ฐ ์ฌ์์ง๋ค๋ ์๋ฏธ.
2. ์๊ดํธ ์๋ต์ด ๊ฐ๋ฅํด์ง๋ค.
ํ๋ผ๋ฏธํฐ๊ฐ ํ๋์ผ ๋๋ ์๊ดํธ ์๋ต์ด ๊ฐ๋ฅํ๋ค.
var ๋๋ฐฐ๋ง๋ค๊ธฐ = x => { return x*2 }
console.log( ๋๋ฐฐ๋ง๋ค๊ธฐ(4) );
console.log( ๋๋ฐฐ๋ง๋ค๊ธฐ(8) );
3. ์ค๊ดํธ๋ ์๋ต์ด ๊ฐ๋ฅํ๋ค.
์ค๊ดํธ์ return ํ์ค ๋ฟ์ผ ๊ฒฝ์ฐ ์ค๊ดํธ์ return๋ ์๋ต์ด ๊ฐ๋ฅํด์ง๋ค.
var ๋๋ฐฐ๋ง๋ค๊ธฐ = x => x * 2 ;
console.log( ๋๋ฐฐ๋ง๋ค๊ธฐ(4) );
console.log( ๋๋ฐฐ๋ง๋ค๊ธฐ(8) );
4. function ๋ด๋ถ์์ this ์ฌ์ฉ ์ ์ธ๋ถ(๋ฐ)์ ์๋ this ๊ฐ์ ๊ทธ๋๋ก ์ฌ์ฉํจ. (ํต์ฌ)
this ๋ ํจ์๊ฐ ์ฐ์ธ ์์น์ ๋ฐ๋ผ ๋ด๋ถ์ this ๊ฐ์ด ๋ณํ๋ค.
arrow function์ ์ด๋์ ์ฐ๋ ๊ฐ์ ๋ด๋ถ์ this ๊ฐ์ ๋ณํ์ํค์ง ์์.
var ์ค๋ธ์ ํธ1 = {
ํจ์: () => {console.log(this)}
}
์ค๋ธ์ ํธ1.ํจ์()
๋ฐ์ this๋ฅผ ํธ์ถํ๋ฏ๋ก window๊ฐ ๋ธ.
์ผ๋ฐ function์ ๋์ฒดํ๋ ๋ฌธ๋ฒ์ด ์๋๋ผ.
์ฉ๋์ ๋ง๊ฒ ์ฌ์ฉํ๋๊ฒ ํต์ฌ์.