클로저와 카레는 자바 스크립트에 사용되는 일반적이고 비교적 고급 기술입니다. 모든 기능 프로그래밍 언어는이 두 개념을 지원합니다. 따라서 JavaScript의 기능적 프로그래밍 특성을 완전히 활용하려면이 두 개념을 심층적으로 이해해야합니다. 폐쇄는 실제로 카레를위한 필수 불가결 한 기초입니다.
1. 카레의 개념
컴퓨터 과학에서 Curry는 여러 매개 변수를 단일 매개 변수 (원래 함수의 첫 번째 매개 변수)를 수용하는 함수로 받아들이고 나머지 매개 변수를 받아들이고 결과를 반환하는 새 기능을 반환하는 함수를 변환하는 기술입니다. 이 기술은 Christopher Strachey의 논리학 적 Haskell Curry의 이름을 따서 명명되었지만 Moses Schnfinkel과 Gottlob Frege가 발명했습니다. 직관적으로 Curry는 "특정 매개 변수를 수정하면 나머지 매개 변수를 수락하는 함수가 나타납니다"라고 주장합니다. 따라서 두 변수가있는 함수 YX의 경우 y = 2가 고정되면 하나의 변수가있는 함수 2x가 얻어집니다.
카레는 간단한 함수를 얻기 위해 기능의 특정 매개 변수를 미리 전달하는 것을 의미합니다. 그러나 사전 통과 된 매개 변수는 폐쇄에 저장되므로 몇 가지 독특한 기능이 있습니다. 예를 들어:
var adder = function (num) {return function (y) {return num + y; }} var inc = Adder (1); var dec = Adder (-1)여기에서 두 가지 변수는 실제로 두 가지 새로운 기능으로, 다음 예제의 사용법과 같이 괄호로 호출 할 수 있습니다.
// INC, DEC는 이제 두 가지 새로운 기능으로 들어오는 매개 변수 값 (+/-) 1print (inc (99)); // 100print (dec (101)); // 100print (Adder (100) (2)); // 102print (Adder (2) (100)); // 102
2. 카레의 적용
카레 기능에 따르면 더 흥미로운 코드를 쓸 수 있습니다. 예를 들어, 프론트 엔드 개발에서 우리는 종종이 상황에 직면합니다. 요청이 서버에서 반환되면 특정 페이지 요소, 즉 부분 새로 고침의 개념을 업데이트해야합니다. 로컬 새로 고침을 사용하는 것은 매우 간단하지만 코드는 혼란에 빠지기 쉽습니다. 그리고 카레를 사용하는 경우 코드를 크게 아름답게하고 유지하기가 더 쉬워 질 수 있습니다. 예를 살펴 보겠습니다.
// 업데이트는 함수를 반환하며 ID 속성을 항목 함수 업데이트 (item)의 웹 내용으로 설정할 수있는 함수를 반환합니다. }} // ajax 요청, 성공하면 Calleter CallbackFunction Refresh (URL, Callback) {var params = {type : "echo", data : ""}; $ .ajax ({type : "post", url : url, cache : false, async : true, datatype : "json", data : params, // 호출 성공 : 함수 (data, status) {callback (data);}, // 요청에서 오류가 발생할 때 오류가 발생할 때 : errer (errer) {error : "+err);}. });} refresh ( "action.do?target=news", update ( "Newspanel")); Refresh ( "action.do ??target=articles", update ( "articepanel")); Refresh ( "action.do?target=pictures", update ( "PicturePanel")); 업데이트 기능이 커리의 인스턴스 인 경우 기능을 반환합니다. 즉, 업데이트 ( "Newspanel") = function (text) {$ ( "div#newspanel"). html (text);}Update ( "Newspanel")의 반환 값이 함수이고 필요한 매개 변수는 ajax Call of Refresh의 문자열이기 때문에 성공하면 콜백에 의해 반환 된 데이터가 콜백으로 전달되어 신문 패널의 새로 고침을 실현합니다. 다른 기사 패널 Articepanel과 그림 패널 PicturePanel의 새로 고침은 모두 이런 식으로 채택됩니다. 이러한 방식으로 코드의 가독성과 유지 관리가 향상됩니다.
위는이 기사의 전체 내용입니다. JavaScript에 대한 자세한 내용은 "JavaScript 참조 자습서"및 "JavaScript Code Style Guide"를 확인하십시오. 또한 모두가 wulin.com을 더 지원하기를 바랍니다.