JavaScript에서 한 번만 실행 가능한 함수 만들기
JavaScript에서는 함수 실행을 단일 인스턴스로 제한해야 하는 경우가 있습니다. C와 같은 언어에서는 정적 변수가 이를 달성할 수 있지만 JavaScript는 클로저를 통해 더 우아한 솔루션을 제공합니다.
인클로징 범위가 종료된 후에도 컨텍스트를 유지하는 함수인 클로저를 사용하면 다음과 같은 기능을 생성할 수 있습니다. 한 번만 호출할 수 있습니다. 클로저 내에 실행 플래그를 캡슐화하면 해당 플래그가 지속적으로 유지되고 외부 코드에 액세스할 수 없도록 보장할 수 있습니다.
다음은 클로저를 사용하여 일회성 실행 함수를 생성하는 예입니다.
<code class="javascript">var something = (function() { var executed = false; return function() { if (!executed) { executed = true; // do something } }; })(); something(); // "do something" happens something(); // nothing happens</code>
이 함수는 후속 호출에도 불구하고 클로저 내에 포함된 코드가 한 번만 실행되도록 보장합니다.
또는 더 캡슐화된 접근 방식을 선호하는 경우 아래와 같은 유틸리티 함수를 활용할 수 있습니다.
<code class="javascript">function once(fn, context) { var result; return function() { if (fn) { result = fn.apply(context || this, arguments); fn = null; context = null; } return result; }; }</code>
사용법:
<code class="javascript">function something() { /* do something */ } var one_something = once(something); one_something(); // "do something" happens one_something(); // nothing happens</code>
이 유틸리티 함수는 첫 번째 호출 결과를 캐시하고 후속 실행을 비활성화하는 함수를 반환합니다.
위 내용은 한 번만 실행되는 JavaScript 함수를 어떻게 만들 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!