1. ホーム
  2. ジャバスクリプト

[解決済み】JavaScriptでクロージャの実用的な使い方は?

2022-03-27 04:36:47

質問

私は トライ JavaScriptのクロージャを理解するのに一番苦労している。

内部関数を返すと、その直属の親で定義されたすべての変数にアクセスできるようになることはわかりました。

これは私にとってどこに役立つのでしょうか?たぶん、まだよく理解できていないのだと思います。ほとんどの 私がネットで見た例では は実際のコードを提供せず、ただ漠然とした例を示しているだけです。

どなたか、クロージャの実際の使い方を教えてください。

例えばこれでしょうか?

var warnUser = function (msg) {
    var calledCount = 0;
    return function() {
       calledCount++;
       alert(msg + '\nYou have been warned ' + calledCount + ' times.');
    };
};

var warnForTamper = warnUser('You can not tamper with our HTML.');
warnForTamper();
warnForTamper();

解決方法は?

クロージャを使って、こんなことをしています。

a = (function () {
    var privatefunction = function () {
        alert('hello');
    }

    return {
        publicfunction : function () {
            privatefunction();
        }
    }
})();

そこを見るとわかるように a はオブジェクトになり、メソッド publicfunction ( a.publicfunction() を呼び出す)。 privatefunction これはクロージャの内部にのみ存在します。 また ない コール privatefunction を直接使用する(つまり a.privatefunction() を使用すると、ちょうど publicfunction() .

これは最小限の例ですが、もしかしたら使い道が分かるかもしれませんね?私たちはこれを、public/privateメソッドを強制するために使用しました。