ES6 화살표 함수 에 대하 여

전환 하 다 http://simplyy.space/article/577c5b0dcbe0a3e656c87c24
여러 개의 연속 적 인 화살표 함수 와 코 리 화
고급 함수
고급 함수 정의: 함 수 를 매개 변수 로 하거나 반환 값 은 함수 의 함수 입 니 다.
그래서 고급 함 수 는 두 가지 로 나 뉜 다.
  • 저희 가 흔히 볼 수 있 는 거 예요.  sort , reduce  등 함수.
  • 반환 값 은 함수 의 함수 입 니 다.

  • 일반적으로 우 리 는 흔히 볼 수 있 는 고급 함 수 를 이해 하 는 것 이 매우 쉽다.예 를 들 면:
    function add(a) {
        return function(b) { return a + b } } var add3 = add(3) add3(4) === 3 + 4 //true 

    add 함수
    let add = a => b => a + b
    

    사실은 이상 은 코 리 화 함수 가 에 스 6 으로 만 쓰 여 모양 이 바 뀌 었 고 그 뒤에 그의 원리 와 특징 을 상세 하 게 소개 했다.
    여러 개의 연속 화살표 함수
    하지만 화살표 함수 가 당신 앞 에 있 을 때 당신 은 조금도 망 설 이지 않 습 니까? 나 는 그 전에 어리둥절 한 얼굴 이 었 습 니 다..................................................예 를 들 어 내 가 아래 의 redux - thunk 의 소스 코드 (맞 아, 전체 소스 코드 는 14 줄 밖 에 없어) 에 있 는 여러 개의 연속 화살표 함 수 를 보 았 을 때...
    //   
    a => b => c => {xxx}
    

    그럼 이 화살표 들 이 무엇 을 했 는 지 쉽게 이해 할 수 있 겠 어 요? 코 리 화 를 보고 순간 알 게 됐어 요.
    여러 개의 연속 화살표 함 수 는 에 스 6 의 여러 차례 코 리 화 된 표기 법 이다.
    코리화
    여러 개의 화살표 함 수 를 어떻게 이해 하 는 지 에 대한 Stackoverflow 의 최고 표 대답 을 살 펴 보 겠 습 니 다.
    그 는 이것 이 바로 코 리 화 함수 라 고 말 했다.(This is a curried function)
    위 키 의 코 리 화 정의: 여러 매개 변 수 를 받 아들 이 는 함 수 를 단일 매개 변 수 를 받 아들 이 는 함수 로 바 꾸 고 (남 은 매개 변 수 를 받 아들 이 고 결 과 를 되 돌려 주 는) 새로운 함수 기술 을 되 돌려 줍 니 다.
    자, 이제 알 겠 어? 내 가 간단하게 말 할 게.
    관건 은 바로 코 리 화 를 이해 하 는 것 이다. 사실은 코 리 화 된 후에 첫 번 째 매개 변 수 를 함수 안에 존재 시 켰 다 (패키지). 그리고 n 개의 매개 변수 가 필요 한 함수 가 남 은 (n - 1 개) 매개 변수 만 있 으 면 호출 할 수 있다. 예 를 들 어
    let add = x => y => x + y
    let add2 = add(2) 

    원래 add 작업 을 완 료 했 는데, 아마도
    let add = (x, y) => x + y
    

    이것 은 두 개의 매개 변수 가 필요 합 니 다. 현재 add 2 함수 가 같은 조작 을 완성 하려 면 하나의 매개 변수 만 필요 합 니 다. 이것 은 함수 식 프로 그래 밍 에서 광범 위 하 게 응용 되 고 있 습 니 다.
    상세 하 게 설명 하면 add 2 함수 등가 가 x 라 는 폐쇄 변수 가 있 는 것 입 니 다.  y => x + y  함수.
    그리고 이때 x = 2, 그래서 이때 호출
    add2(3) === 2 + 3
    

    복귀
    let add = x => y => x + y
    

    add 함 수 는 위 키 의 정의 에 따라 한 번 만 코 리 화 된 것 으로 이해 할 수 있 습 니 다. 그럼 다음은 이런 것 은 요?
    a => b => c => {xxx}
    

    n 개의 연속 화살표 로 구 성 된 함 수 는 사실상 코 리 화 n - 1 회 이다.
    구체 적 인 호출 과정 은 다음 과 같다.
    n - 1 차 호출 은 사실 미리 파 라 메 터 를 전달 하고 최 내층 함수 체 를 호출 하지 않 았 습 니 다. 마지막 호출 은 최 내층 함수 체 를 호출 하고 최 내층 함수 체 의 반환 값 을 되 돌려 줍 니 다.
    위의 글 을 결합 하면 알 수 있 듯 이 이곳 의 여러 연속 화살표 (두 개의 화살표 함수 와 상 관 없 이 세 개 이상) 함수 가 연결 되 어 있 으 면 바로 코 리 화 이다.
    그래서 연속 화살표 함 수 는 여러 번 코 리 화 함수 의 es6 쓰기 입 니 다.
    let test = a => b => c => {xxx} 

    호출 특징
    let test = a => b => c => {xxx} 

    위 에  test  함수, 그것 은 세 개의 화살표 가 있 습 니 다. 이 함 수 는 세 번 호출 되 어야 합 니 다.  test(a)(b)(c) 앞의 두 번 의 호출 은 매개 변 수 를 전달 하 는 것 일 뿐 마지막 에 순서대로 호출 해 야 돌아 올 수 있다.  {xxx}  코드 세그먼트 의 반환 값 및  {xxx}  코드 세그먼트 에서 a, b, c 를 호출 할 수 있 습 니 다.
    코 리 화 함수 의 기능
  • 타성 으로 값 을 구 할 수 있다
  • 일부 매개 변 수 를 미리 전달 할 수 있다
  • 다음으로 전송:https://www.cnblogs.com/xueandsi/p/6032578.html

    좋은 웹페이지 즐겨찾기