>웹 프론트엔드 >JS 튜토리얼 >Javascript_javascript 기술의 고차 함수 소개

Javascript_javascript 기술의 고차 함수 소개

WBOY
WBOY원래의
2016-05-16 16:09:241258검색

이것은 Javascript 객체의 힘을 보여주는 흥미로운 사실입니다. 우리가 해야 할 일은 이전 글에서 언급한 것처럼 Hello, World를 출력하는 것이고, 입력은 print('Hello')('World')인데, 이것이 소위 고수준 함수이다.

고차 함수

하이 레벨이라는 말은 고급 프로그래밍 기술을 가리키는 난해한 용어인 것 같아서 처음 봤을 때 그렇게 생각했습니다.

자바스크립트의 고차함수

그러나 고차 함수는 함수를 매개변수나 반환 값으로 취하는 함수일 뿐입니다. 위의 Hello, World를 간단한 예로 들어보겠습니다.


코드 복사 코드는 다음과 같습니다.
var Moqi = 함수(p1){
This.add = 함수(p2){
            p1 ' ' p2 반환;
};
반품 추가;
};

이 기능을 이렇게 사용할 수 있습니다


코드 복사 코드는 다음과 같습니다.
console.log(Moqi('Hello')('World'));

어쩌면 이 과정이 다소 혼란스러울 수도 있으니 좀 더 자세히 살펴보세요.

코드 복사 코드는 다음과 같습니다.
> 모키('안녕하세요')의 종류
<- "함수"
>모치('안녕하세요')
<- 기능(p2){
           p1 ' ' p2 반환;
}

즉, Moqi('Hello')는 실제로는 함수인 Moqi('Hello')

코드 복사 코드는 다음과 같습니다.
> var m = Moqi('안녕하세요')                                                       >m('세계')
>"안녕하세요"


위의 상황에서 고차 함수를 사용하면 코드를 더욱 간결하고 효율적으로 만들 수 있습니다. 당연히 다음과 같은 기능을 만들 수도 있습니다.


>모치('안녕하세요')('세상')('포달')
>"안녕하세요 월드 포달"


그래서 이런 기능이 있군요


var Moqi = 함수(p1){
반환 함수(p2){
         반환 기능(p3){
                 p1 ',' p2 ' ' p3 반환;
}
};
};


고차 함수 복원

점점 더 복잡해지고 있으며, 고차 함수 추상화를 도입해야 한다는 신호는 반복되거나 유사한 코드의 발생입니다. 그런 다음 단계별로 이전 기능으로 복원합니다.


var Moqi = 함수(p1){
This.add = 함수(p2){
         반환 기능(p3){
                 p1 ',' p2 ' ' p3 반환;
}
};
이것을 반환하세요.추가;
};


그런 다음 새 함수를 만듭니다


코드 복사 코드는 다음과 같습니다.

var Moqi = 함수(p1){
This.add = 함수(p2){
This.add1 = 함수(p3){
                 p1 ',' p2 ' ' p3 반환;
        };
          return this.add1;
};
이것을 반환하세요.추가;
};

자바스크립트에서 호출 메소드를 사용하면 다음과 같습니다.
코드 복사 코드는 다음과 같습니다.

var Moqi = 함수(p1){
var self = this;

함수 fd(p2) {
This.add1 = 함수(p3) {
                 p1 ',' p2 ' ' p3 반환;
        };
}

self.add = 함수(p2){
            fd.call(this, p2);
          return this.add1;
};
self.add를 반환합니다.
};

고차 함수 예시

위 예시는 재미를 위한 예시이고, 다음 예시는 실제 적용을 위한 예시입니다.

코드 복사 코드는 다음과 같습니다.

추가 = 함수(a,b){
b를 돌려주세요;
};

함수 수학(func,array){
Return func(array[0],array[1]);
}

console.log(math(add,[1,2]));

> 수학(추가,[1,2])
<3


위의 예에서 전달된 add는 매개변수이고, 반환되면 이는 단지 함수일 뿐입니다. 예를 들어 jQuery에는
에 대한 함수가 있습니다.
코드 복사 코드는 다음과 같습니다.

// 대시를 CSS 및 데이터 모듈에서 사용하는 camelCase로 변환합니다
// Microsoft는 공급업체 접두사(#9572)를 생략하는 것을 잊었습니다.
camelCase: 함수( 문자열 ) {
반환 문자열.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
},

이런 식으로 사용되기도 하는데, 이는 JS를 잘 익히는 데 고차 기능이 얼마나 중요한지를 보여줍니다. .
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.