javascript 에서 화살표 함수 의 역할

ECMAscript 6 에서 도입 새로운 정의 함수 방식 화살표 함수 (화살표 함수)
JS 의 익명 함 수 를 '간소화' 했다 고 할 수 있다.
그러나 이것 은 익명 함수 와 같 지 않다. 코드 를 간소화 하기 위해 이런 표기 법 이 생 긴 것 이 아니 라 다른 꿍꿍이 가 있다 고 할 수 있다
원래 익명 함수 문법:
function (x) {
    return x * 2;
}

같은 화살표 함수 문법: 
  • ES6 의 화살표 함수 가 function 의 작성 을 생략 하 였 습 니 다.
  • 매개 변수 가 1 개 라면 추가 () 가 필요 없습니다.
  • 함수 체 가 복잡 하 다 면
  • 을 더 해 야 한다.
    (x,y) => return x * y;
    
    //or
    
    (x,y) => {
       var c = 20;
       var res = x * y + c;
       return res;
    };
    

    화살표 함수 적용 중:
    화살표 함 수 는 익명 함수 의 약자 로 보이 지만 실제 화살표 함수 와 익명 함 수 는 현저 한 차이 가 있 습 니 다. 화살표 함수 내부 의 this 는 품사 작용 영역 으로 문맥 에 의 해 확 정 됩 니 다.
    JavaScript 함수 가 this 바 인 딩 에 대한 오류 처리 로 인해 다음 예 는 예상 한 결 과 를 얻 을 수 없습니다.
    var obj = {
        birth: 1990,
        getAge: function () {
            var b = this.birth; // 1990
            var fn = function () {
                return new Date().getFullYear() - this.birth; // this  window undefined
            };
            return fn();
        }
    };

    현재 화살표 함수 가 this 의 방향 을 완전히 복원 하 였 습 니 다. this 항상 품사 작용 역, 즉 외부 호출 자 obj 를 가리 키 고 있 습 니 다.
    var obj = {
        birth: 1990,
        getAge: function () {
            var b = this.birth; // 1990
            var fn = () => new Date().getFullYear() - this.birth; // this  obj  
            return fn();
        }
    };
    obj.getAge(); // 25

    화살표 함 수 를 사용 하면 이전 hack 쓰기:
    var that = this;

    필요 없어..this 화살표 함수 에서 어법 작용 역 에 따라 연결 되 었 기 때문에 call() 또는 apply() 화살표 함 수 를 호출 할 때 this 를 연결 할 수 없습니다. 즉, 들 어 오 는 첫 번 째 매개 변 수 는 무시 되 었 습 니 다.
    var obj = {
        birth: 1990,
        getAge: function (year) {
            var b = this.birth; // 1990
            var fn = (y) => y - this.birth; // this.birth  1990
            return fn.call({birth:2000}, year);
        }
    };
    obj.getAge(2015); // 25

     
    레 설 봉 공식 홈 페이지
     

    좋은 웹페이지 즐겨찾기