Nicholasの「保守可能なJavaScript」の199ページに関する1つのJavaScriptスコープを明確にする

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

  •  25-08-2022
  •  | 
  •  

質問

付録A、199ページ、「Strictを使用する」を使用して議論するとき、それは次のようになります。

「Strictを使用する」を複数回記述する必要なく、Strict ModeをMulitple関数に適用する場合は、即時関数の呼び出しを使用します。

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

    function doSomething() {
        // code
    }

    function doSomethingElse() {
        // code
    }

}());

私の質問は、これが皮膚の機能全体がどのように見えるかである場合、おそらくそれをすぐに呼び出す効果はないでしょうか?匿名関数内で宣言されているのは2つの関数のみが、そこから内側から呼び出されていないため(2つの関数は世界の他の地域に副作用を行うことはできません)、外側に戻って参照が失われるためです。

おそらく、コードスニペットは「Strictを使用する」の使用を示すことのみを目的としていることを確認したいだけなので、これら2つの関数への呼び出しまたは返却のいずれかを省略しただけですか?

ありがとう、

/ブルーイン

役に立ちましたか?

解決 2

あなたは正しいと思います。この例は完全なものではありません。これは、その中で定義されている関数を呼び出すことはないためです。この例は、特定の関数セットに「Strictを使用」を適用する方法を説明するためのものです。関数がエクスポートされるように少し拡張したい場合は、次のようなことをすることができます。

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