자바스크립트/클로저
자바스크립트 클로저 예제 - 한 번만 호출할 수 있는 함수
Socratone
2020. 3. 1. 23:28
function once(func) {
// 여기에 func 변수가 있다고 의식해야 쉽다.
let alreadyCalled = false;
let result;
// 이상의 func, alreadyCalled, result 변수는
// 아래의 add 변수에 클로저로 남는다.
return function() {
if(!alreadyCalled) {
alreadyCalled = true;
result = func.apply(null, arguments); // func 변수에 담긴 함수를 호출한다.
}
return result;
}
}
let add = once(function(a, b) {
return a + b;
});
add(1, 2); // 3
add(3, 4); // 3
add(5, 6); // 3