() =>
❓🤔 기존 function을 대체할 수 없는 이유는?
화살표 함수는 함수를 파라미터로 전달하는 용도이고, 서로 가리키고 있는 this 값이 다르기 때문!
const MyComponent = () => {
function BlackDog() {
this.name = '흰둥이';
return {
name: '검둥이',
bark: function() {
console.log(this.name + ': 멍멍!');
}
}
}
const blackDog = new BlackDog();
blackDog.bark(); // 검둥이: 멍멍!
function WhiteDog() {
this.name = '흰둥이';
return {
name: '검둥이',
bark: () => {
console.log(this.name + ': 멍멍!');
}
}
}
const whiteDog = new WhiteDog();
whiteDog.bark(); // 흰둥이: 멍멍!
}
export default MyComponent
}

✔ function()을 사용했을 때
👉 검둥이
✔ ( ) =>를 사용했을 때
👉 흰둥이
일반 함수는 자신이 종속된 객체를 this로 가리키며, 화살표 함수는 자신이 종속된 인스턴스를 가리키기 때문!
// 따로 { }를 열어 주지 않으면 연산한 값을 그대로 반환한다는 의미
function twice(value) {
return value * 2;
}
const triple = (value) => value * 3;