1. 匿名関数
関数は JavaScript で最も柔軟なオブジェクトです。ここでは、匿名関数の使用についてのみ説明します。無名関数:関数名のない関数です。
1.1 関数の定義、まず関数の定義を簡単に紹介します。大きく分けて 3 つの方法があります
最初のタイプ: これも最も一般的なタイプです
var double = function(x) { return 2* x }
「=」の右側の関数は無名関数であることに注意してください。関数を作成した後、関数は変数 square に代入されます。
最初の方法は、上で述べたように二乗関数を定義することであり、これも最も一般的に使用される方法の 1 つです。
2 番目の方法:
2. 終了
クロージャを表す英語はクロージャです。クロージャは JavaScript の知識の非常に重要な部分です。クロージャを使用すると、コードの量が大幅に削減され、コードがより明確に見えるなどの効果があるためです。つまり、クロージャは非常に強力です。
クロージャの意味: 端的に言えば、クロージャは関数の入れ子です。たとえ外側の関数が実行されていても、内側の関数は外側の関数のすべての変数を使用できます (これには JavaScript スコープ チェーンが関係します)。
例 1
例 2、最適化されたコード
コードをコピー
oEvent.addEvent = addEvent;
oEvent.removeEvent = 削除イベント;
})();
このコードでは、addEvent 関数とremoveEvent 関数はローカル変数ですが、グローバル変数 oEvent を通じてそれを使用できます。これにより、グローバル変数の使用が大幅に削減され、Web ページのセキュリティが強化されます。 次のコードを使用します: oEvent.addEvent(document.getElementById('box') , 'click' , function(){});
例 4:
ここでは変数 Rainman を作成し、匿名関数を直接呼び出すことでそれを 5 に初期化します。この小さなトリックは場合によっては非常に実用的です。
例 5:
このコードの変数 1 はローカル変数 (関数内で定義されているため) であるため、外部からアクセスできません。ただし、ここでは変数 one にアクセスできる inner 関数を作成し、グローバル変数 external は inner を参照するため、outer を 3 回呼び出すと増分結果がポップアップされます。
4. 注意
4.1 クロージャにより、内部関数は親関数内の変数を参照できますが、変数は最終値
例 6:
var lists = document.getElementsByTagName('li');
for(var i = 0 , len = lists.length ; i
Lists[ i ].onmouseover = function(){
アラート(i);
};
}
解決策 2:
クロージャを使用すると、ブラウザでメモリ リークが発生しやすくなり、深刻な場合にはブラウザがハングします。興味がある場合は、