1. クロージャとは何ですか? 閉店のメリットとデメリット。
関数の戻り値が別の関数であり、返された関数がその親関数内の変数を呼び出し、返された関数が外部で実行される場合、クロージャが生成されます。クロージャは、他の関数内の変数を読み取ることができる関数です。
利点: 1. 変数はメモリ内に長期間存在します
2. グローバル変数の汚染を回避します
3. プライベート プロパティとプライベート メソッドを定義できます
短所: 1. 永続メモリによりメモリ使用量が増加します。 不適切に使用するとメモリ リークが発生します
。 2. 親関数の内部変数の値を変更できます。
閉鎖機能:
1. 関数の入れ子関数
2. 関数は外部パラメータと変数を参照できます
3. パラメータと変数はガベージ コレクション メカニズムによってリサイクルされません。
2. これが指す 3 つのメソッドを変更します
1.call()
構文: 関数名.call(呼び出し元, パラメータ1, ...)
関数: 関数が借用されると、その関数はすぐに実行され、関数本体の this は借用者または呼び出し元を指します。
2.apply()
構文: 関数名.apply(呼び出し元, [パラメータ, …])
関数: 関数が借用されると、その関数はすぐに実行され、関数本体の this は借用者または呼び出し元を指します。
3.バインド()
構文: 関数名.bind(呼び出し元、パラメータ、...)
関数: 関数を借用すると、すぐには実行されず、新しい関数が返されます。この点を変更するには、手動で新しい関数を呼び出す必要があります。