받아 들여지는 대답은 훌륭합니다. 압축 된 "화살표 함수 구문" 대신 일반 함수 구문 을 사용하려는 경우 가장 좋습니다 .
하지만 화살표 기능을 정말 좋아할 수도 있습니다. 일반 함수 구문으로 대체 할 수없는 다른 이유로 화살표 함수를 사용할 수 있습니다 . 다른 솔루션이 필요할 수 있습니다.
예를 들어, OP가를 사용하는 것을 알았습니다 . 어휘 적this
으로 바인딩this
할 수 있습니다 . 일명 "non-binding of this" ), 화살표 함수는 어휘 바인딩에 좋습니다.
이 Object.defineProperty
기술을 통해 getter와 함께 화살표 함수를 계속 사용할 수 있습니다 .
{
...
Object.defineProperty(your_obj, 'status', {
get : () => this.xhr.status
});
...
}
관련 항목의 언급 object initialization
기술 (일명 get NAME() {...}
) 은 VS defineProperty
기술 (일명 get : ()=>{}
) . 최소한 하나의 중요한 차이가 있습니다. 사용 defineProperty
하려면 변수가 이미 있어야합니다.
기존 객체에 게터 정의
즉, (내 예에서) 존재하고 변수에 저장되어 Object.defineProperty
있는지 확인해야합니다 your_obj
(반면에 object-initialization
객체 초기화에서 객체 리터럴을 반환 할 수 있습니다 :) {..., get(){ }, ... }
. 자세한 Object.defineProperty
내용은 여기
Object.defineProperty(...)
get NAME(){...}
구문 과 비슷한 브라우저 지원이있는 것 같습니다 . 최신 브라우저, IE 9.
(method, url, something) => this.xhr.open(method. url, something)
.