[JS] ES6 - Arrow Function

aiden Lee·2021년 7월 23일
0

ES6

목록 보기
3/8

Arrow Function

Arrow Function 은 ES6 의 새로운 함수 정의 방식입니다.

var a = function() {
    // 기존 함수 선언 방식 
}

var a = () => {
    // Arrow Function 방식
}
// or
var a = () => console.log('한줄 retrun');
var a = () => ( { "객체": "return" } );

var a = arg => {
    // 매개변수가 하나일 경우 소괄호를 생략해도 됩니다.
}
var arr = [1,2,3];
var a = arr.filter(item => {
  // callback 함수 표현
});

화살표 함수의 this 는 상위 스코프의 this 를 가리킵니다.
이를 lexical this 라고 합니다.
이러한 특징으로 메소드 정의를 지양하는게 좋다고 합니다.

const person = {
   age: 10,
   say: ()=> {
     console.log("Hello, I'm" + this.age); 
   }
}
person.say(); // Hello, I'm undefined
// 이때 this 는 window 를 가르킵니다. 그러므로 오류를 발생시킵니다.

다른 해결 방법으로 ES6의 함수 축약 표현이 있습니다.

const person = {
    age: 10,
    say() { // say: function() {} 와 같습니다.
	console.log("Hello, I'm" + this.age); 
    }
}
person.say(); // Hello, I'm 10
profile
Hello!

0개의 댓글