es6 화살표 함수 의 this 차이

843 단어
화살표 함수 함 수 는 es6 의 익명 함수 에 대한 약자 로 보이 지만 사실은 화살표 함수 와 익명 함수 가 현저 한 차이 가 있 습 니 다.
  • 일반적인 방식 으로 정 의 된 함 수 는 제 가 정리 한 글 에서 js 중의 this
  • 를 참고 할 수 있 습 니 다.
  • 화살표 함수 중의 this 는 품사 역할 영역 입 니 다. 즉, this 는 호출 시의 문맥 과 무관 합 니 다
  • 화살표 함 수 는 자신의 this 를 연결 하지 않 았 습 니 다. 화살표 함수 에서 this 를 호출 할 때 간단 한 역할 도 메 인 체인 을 따라 위로 찾 아 가장 가 까 운 this 를 찾 아 사용 할 뿐 입 니 다 (외부 호출 자).
  • 화살표 함수 가 this 를 연결 하지 않 았 기 때문에 모든 call, apply 의 첫 번 째 매개 변수 (this 의 바 인 딩) 가 잘못 되 었 습 니 다. 차이 점 을 보 세 요
  • //    
    var obj = {
        name: 'ab',
        getName: function () {
            var fn = () => this.name; // this  obj  
            return fn();
        }
    };
    obj.getName();
    
    //     
    var obj = {
    name: 'ab',
    getName: function () {
        var fn = function() {return this.name} // this  winodw  
        return fn();
    }
    };
    obj.getName();
    

    좋은 웹페이지 즐겨찾기