minhan2 2018. 11. 15. 20:16
728x90
반응형

간단하게는, 화살표 함수는 일부 괄호, 세미콜론 코드 등 약간의 입력을 생략하며 가독성이 증가하여 좋은 퍼포먼스를 낼수 있습니다.

화살표 함수는 익명함수로만 사용할수 있으므로, 함수표현식으로만 사용되며, 또는 콜백함수로 사용할수 있습니다.

arguments에 대해서, 화살표 함수는 바인딩 하지 않고, 기존 function은 바인딩 합니다.

this바인딩의 차이는 어느정도의 설명이 더해집니다.

기존 함수를 호출할때는 함수가 어떤식으로 호출이 되었는지에 따라 this에 바인딩할 객체가 동적으로 결정됩니다.

전역공간, 함수내부, 콜백은 window/global(node), 메소드 호출시에는 메소드 호출 주체, 생성자 함수에서는 인스턴스를 가리킵니다.

반면, 화살표 함수는 함수를 선언할 때 this에 바인딩할 객체가 정적으로 결정됩니다.

동적으로 결정되는 일반함수와는 달리 화살표 함수는 this를 바인딩하지 않으므로 상위 스코프의 this를 가르키며, 이를 Lexical this라고 합니다.

화살표 함수의 this 바인딩 객체 결정 방식은 함수의 상위 스코프를 결정하는 방식인 Lexical scope(정적 스코프)와 유사합니다.

이러한 상위 스코프의 this를 가리키는 화살표 함수의 특성 때문에, 메소드와 prototype로 정의하는 것은 주의해야하며, 화살표함수는 prototype 프로퍼티를 가지고 있지 않기 때문에 생성자 함수로 사용할수 없다.

따라서, 상황에 맞도록 함수를 정의하도록 주의하여야 합니다.

화살표 함수는 call, applay, bind 메소드를 사용하여 this를 변경할 수 없습니다.

728x90
반응형