구현 방법
1. 변수를 선언하고, 그 위치에 함수를 선언한다.
let add = function(num1, num2) {
return num1 + num2;
}
2. 함수명 ‘function’을 없애고, 괄호 우측에 화살표를 표시한다.
let add = (num1, num2) => {
return num1 + num2;
}
let add = (num1, num2) => (
num1 + num2;
)
let add = function(num1, num2) {
const result = num1 + num2;
return result;
}
let add = (num1, num2) => num1 + num2;
let sayHello = name => Hello, ${name};
let showError = () => {
alert('error!');
}
: 화살표 함수에는 'this'가 없기 때문에 상위 스코프의 this를 참조한다
function BlackDog() {
this.name = '흰둥이';
return {
name : '검둥이',
bark : function() {
console.log(this.name + ': 멍멍!');
}
}
}
const blackDog = new BlackDog();
blackDog.bark(); // 검둥이 : 멍멍!
메소드로 function()을 사용했을 때에는 name으로 '검둥이'가 나타난다. 일반 함수는 자신이 종속된 객체를 this로 가리키기 때문이다.
function WhiteDog() {
this.name = '흰둥이';
return {
name : '검둥이',
bark : () => {
console.log(this.name + ': 멍멍!');
}
}
}
const whiteDog = new WhiteDog();
whiteDog.bark(); // 흰둥이 : 멍멍!
메소드로 () =>를 사용했을 때에는 name으로 '흰둥이'가 나타난다. 화살표 함수는 자신이 종속된 인스턴스를 가리키기 때문이다.