편집을 취소할 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 게시해주세요.
최신판 | 당신의 편집 | ||
1번째 줄: | 1번째 줄: | ||
{{다른뜻|Clojure | {{다른뜻|Clojure}} | ||
==개요== | ==개요== | ||
;closure | ;closure | ||
;클로저, 클로져 | ;클로저, 클로져 | ||
*프로그래밍 언어에서 함수 객체의 일종 | *프로그래밍 언어에서 함수 객체의 일종 | ||
*여러 프로그래밍 언어에서 주로 [[익명함수]]로 | *여러 프로그래밍 언어에서 주로 [[익명함수]]로 구현됨 | ||
*인수 이외의 변수를 실행시 환경이 아니라 자신이 정의된 환경(정적 스코프)에서 | *인수 이외의 변수를 실행시 환경이 아니라 자신이 정의된 환경(정적 스코프)에서 해결 | ||
==예시== | ==예시== | ||
< | <source lang='JavaScript'> | ||
function getAdder(x) { | function getAdder(x) { | ||
return function(y) { | return function(y) { | ||
18번째 줄: | 18번째 줄: | ||
var adder10 = getAdder(10); | var adder10 = getAdder(10); | ||
document.write( adder5(2) + "<br>" ); | |||
document.write( adder10(2) + "<br>" ); | |||
document.write( getAdder + "<br>" ); | |||
</ | // 7 | ||
// 12 | |||
// function getAdder(x) { return function(y) { return x + y; }; } | |||
</source> | |||
<jsfiddle height='120'>8jwfgjk4</jsfiddle> | |||
==같이 보기== | ==같이 보기== | ||
* [[익명함수]] | * [[익명함수]] | ||
* [[1급 함수]] | * [[1급 함수]] | ||
* [[Python 클로저]] | * [[Python 클로저]] | ||
32번째 줄: | 35번째 줄: | ||
* {{위키백과|클로저 (컴퓨터 프로그래밍)}} | * {{위키백과|클로저 (컴퓨터 프로그래밍)}} | ||
[[분류: | [[분류: 프로그래밍]] |