👊

클로저 함수

_.once = function (func) { let result; let alreadyCalled = false; return function (...args) { // TIP: arguments 키워드 혹은, spread operator를 사용하세요. if (!alreadyCalled) { alreadyCalled = true; result = func(...args); } return result; }; };
클로저함수는 내부함수에서 접근 할 수 있는 외부함수의 인자이다. 코드에서 보면 외부함수의 func함수를 내부스코프에서 접근을한다. 또다른 외부함수 argument를 접근하고있다.
그래서 result = func(...args)가 가능하다.