'Closure'는 함수 범위의 바깥에 있는 변수에 접근하는 것이다. 'Closure'는 항상 함수 범위 밖의 변수에 접근할 때 항상 사용한다.
function apple(x){
function google(y, z){
console.log(x * y);
}
google(7, 2);
}
apple(3);
'Currying'은 n개의 인수의 단일 함수를 각각 하나의 인수로 n개의 함수로 변환하는 것이다. 따라서 'Currying'은 둘 이상의 주장의 함수를 하나의 주장의 함수로 줄이는 방법이라고 말할 수 있습니다.
let curriedQuadratic = function(a) {
return function(b) {
return function(c) {
return function(x) {
return a * d * c + b * a + d;
};
};
};
};
'currying'은 함수 범위 밖의 변수에 접근할 수 있기 때문에'closure'처럼 사용할 수 있다. 하지만 'currying'은 n개의 함수와 n개의 인자를 갖는 반면, 'closure'는 n개의 인자와 n개의 함수를 가지고 있지 않다.