Nicholas의 "Maintherable JavaScript"의 199 페이지에 관한 하나의 JavaScript 범위를 명확히하십시오.

StackOverflow https://stackoverflow.com/questions/20353171

  •  25-08-2022
  •  | 
  •  

문제

199 페이지의 부록 A에서 "Strict 사용"을 사용하는 것을 논의 할 때 다음과 같습니다.

"엄격한 사용"을 여러 번 쓰지 않아도 Mulitple 기능에 엄격한 모드를 적용하려면 즉각적인 기능 호출을 사용하십시오.

//good
(function() {
    "use strict";

    function doSomething() {
        // code
    }

    function doSomethingElse() {
        // code
    }

}());

내 질문은 이것이 전체 anonlymous 함수가 어떻게 보이는지라면 즉시 그것을 즉시 호출하는 효과가 없을 것입니다. 익명 함수 내에서 두 가지 기능 만 선언되지만 거기에서 호출되지 않기 때문에 (따라서 두 기능은 다른 세계에 부작용을 만들 수 없음) 외부로 돌아와서 참조가 손실됩니다.

아마도 코드 스 니펫이 "Strict 사용"의 사용을 보여주기위한 것임을 확인하고 싶을 것입니다. 따라서이 두 기능의 호출 또는 반환을 단순히 생략 했습니까?

감사,

/브루 인

도움이 되었습니까?

해결책 2

나는 당신이 맞다고 생각합니다. 이 예제는 정의 된 함수를 절대 호출하지 않기 때문에 완전한 예제가 아닙니다. 이 예제는 특정 함수 세트에서 "엄격한 사용"을 적용하는 방법을 설명하기위한 것입니다. 함수가 내보내도록 약간 확장하려면 다음과 같은 일을 할 수 있습니다.

var myModule = (function() {
    "use strict";

    function doSomething() {
        // code
    }

    function doSomethingElse() {
        // code
    }

    return {
        doSomething: doSomething,
        doSomethingElse: doSomethingElse
    };

}());

myModule.doSomething();
myModule.doSomethingElse();

다른 팁

아이디어는 iife가 동요한다는 것입니다 모두 그 기능뿐만 아니라 코드의.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top