>  기사  >  웹 프론트엔드  >  한 번만 실행되는 JavaScript 함수를 어떻게 만들 수 있나요?

한 번만 실행되는 JavaScript 함수를 어떻게 만들 수 있나요?

Linda Hamilton
Linda Hamilton원래의
2024-10-22 23:32:29682검색

How Can I Create a Function in JavaScript That Executes Only Once?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.