JavaScript의 클로저는 적극적으로 개발하는 기능이기도 하고, 수동적으로 개발하는 기능이기도 합니다. 즉, 한편으로는 클로저의 일부 문제를 해결하기 위해 JS가 더 잘할 수 있습니다. 특정 문제, JS 문제, 그리고 문제를 간신히 해결하기 위해 클로저를 사용해야 했습니다.
JS 클로저로 문제를 더 잘 해결할 수 있다면 물론 클로저를 사용하는 것이 더 좋습니다.
제가 논의하고 있는 것은 후자입니다. 왜냐하면 "변수는 한 번만 초기화됩니다"라는 요구 사항과 같은 클로저로 해결해야 하는 JS 자체의 한계 때문입니다.
기존 언어는 다음과 같이 해결됩니다.
JavaScript는 일반적으로 클로저를 사용하여 이 문제를 해결합니다.
하지만 저는 이 방법(클로저 제거)을 선호합니다.
후자가 더 나은 확장성을 갖기 때문에 변수에 대해 다른 작업을 구현해야 하는 경우 후자는 다른 함수(즉, 단순 선형 확장)를 정의할 수 있는 반면 전자(클로저)는 완전히 다시 작성해야 합니다. (이것이 리팩토링이라는 단어를 자주 듣는 이유입니다.)