JavaScript/기초
자바스크립트[기초] 화살표 함수와 일반 함수의 차이
뿌비
2022. 5. 26. 23:18
728x90
화살표 함수가 기존의 function 함수를 대체할 수 없는 것은 용도가 다르기 때문이다. 무엇보다 서로 가리키고 있는 this 값이 다르다
화살표 함수(ES6에서 추가된 함수를 표현하는 문법)
- 함수를 파라미터로 전달할 때 유용하다
- 자신이 종속된 인스턴스를 가리킨다 (조금 더 쉽게 말하면 function 함수 자체의 this를 나타낸다)
- 값을 연산하여 바로 반환해야 할 때 사용하면 가독성을 높일 수 있다
일반 함수(function)
- 자신이 종속된 객체를 this로 가리킨다 (조금 더 쉽게 말하면 function 함수 내부에 있는 객체를 나타낸다)
// 일반 함수 사용
setTimeOut(function() {
console.log('hello world');
}, 1000);
// 화살표 함수 사용
setTimeOut(() =>{
console.log('hello world');
}, 1000);
/* 일반 함수 와 화살표 함수의 this 차이 */
// 일반 함수 사용
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(); // 흰둥이: 멍멍!
// 화살표 함수는 따로 {} 를 열어주지 않으면 연산한 값을 그대로 반환한다는 의미 이다
function twice(value) {
return value * 2;
}
const triple = (value) => value * 3;
728x90