JavaScript 開発者は、.js ファイル全体が (function() { のような匿名関数内にカプセル化されるという特殊な慣行に遭遇することがよくあります) ... })()。不可解に思えるかもしれませんが、この手法には、特に名前空間の設定や関数や変数の可視性の制御において、特有の利点があります。
JavaScript 関数はネストでき、プライベート メンバー関数や/または外部関数のスコープ内の変数。例:
function outerFunction() { function innerFunction() { // Inner function with private visibility } }
このシナリオでは、outerFunction はグローバルにアクセスできますが、innerFunction はプライベートです。
匿名関数ラッパーは、同様の目的で、ファイル内にプライベート スコープを効果的に作成します。ラッパー内のコードは外部からアクセスできなくなり、グローバル スコープの汚染を防ぎます。この手法は、コードを名前空間に編成し、カスタム ライブラリやプラグインの作成を可能にする場合に役立ちます。
例:
var myPlugin = (function() { var private_var; function private_function() { // Private function } return { public_function1: function() { // Public function }, public_function2: function() { // Public function } }; })();
この場合、private_var と private_function は、 myPlugin 名前空間ですが、public_function1 と public_function2 はラッパーの外部からアクセスできます。
関数を自己呼び出しするときの最後の括弧を使用すると、引数を渡すことができます。たとえば、jQuery プラグインを作成する場合、開発者は jQuery または $:
(function(jQ) { ... code ... })(jQuery);
この手法によりグローバル パラメーターをローカルで再定義し、パフォーマンス上の利点を提供し、圧縮を促進します。
JavaScript の匿名関数ラッパーは、プライバシー、名前空間の編成、およびパフォーマンスの向上を実現する手段です。これらは、ファイル内にコードをカプセル化する便利な方法を提供し、再利用可能なコンポーネントとライブラリの作成を可能にします。
以上がJavaScript で匿名関数ラッパーを使用する理由の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。