機能の閉鎖とは何ですか

  1. 閉鎖とは何ですか

(1). クロージャ: 計算する必要のない変数を含む関数の字句表現、つまり関数の外で定義された変数を使用できる関数 (2). 使用法: 変数の再利用と変数の保護を両立する
方法改ざんからの変数 プログラミング方法

  1. クロージャを使用する理由

(1). グローバル変数: 利点: 再利用できる、欠点: どこでも汚染されやすい
(2). ローカル変数: 利点: 関数内でのみ使用でき、汚染されない、欠点: 再利用できない!

  1. いつ使用するか

関数で変数を再利用し、変数が改ざんされないように保護したい場合は、クロージャを使用してください。

  1. 使い方は3ステップ

(1). 内部関数と保護する変数をラップする外部関数を定義する
問題: 内部関数は外部関数内のローカル関数になり、外部から使用できません。
(2). 外部関数は内部関数を外部に返します。
注: 内部関数には名前を付けないでください。いずれにせよ、内部関数が外部から受け取られた後、人々は新しい変数名を付けるでしょう。
問題: 関数が呼び出された場合にのみ戻り結果が得られます。
関数が呼び出されないと、関数は実行されず、戻り結果が得られません。
(3). 内部関数を使用したい人は、外部関数を呼び出して内部関数を取得する必要があります。使うために!

  1. 要約する

(1). クロージャとは正確には何ですか: 外部関数のスコープ オブジェクトは、内部関数によって参照および保護されるため、クロージャ オブジェクトと呼ばれます。
(2). 質問: クロージャが形成される理由: 外部関数が呼び出された後、内部関数は外部関数のスコープ オブジェクトを参照するため、外部関数のスコープ オブジェクトを解放できず、クロージャが形成されます。

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>闭包</title>
</head>
<body>
    <script>
        var 函数=function(){
     
     
            // 声明类全局变量=身上1000元零钱
            var 零钱=1000;
            return function(消费){
     
     
                零钱-=消费;
                document.write(`还剩${
       
       零钱}元<br>`);
            };
        };
        var 剩余=函数();
        剩余(100);
        剩余(100);
        剩余(100);
    </script>
</body>
</html>

おすすめ

転載: blog.csdn.net/u010100877/article/details/109488506