私は現在、JavaScriptの読み上げを終えています。http://www.w3schools.com/js/js_function_closures.aspで、JavaScript のクロージャーに関する章 (「プライベート変数」を許可するため) に参加しています。
例はカウンターです:
<!DOCTYPE html>
<html>
<body>
<p>Counting with a local variable.</p>
<button type="button" onclick="myFunction()">Count!</button>
<p id="demo">0</p>
<script>
var add = (function () {
var counter = 0;
return function () {return counter += 1}
})()
function myFunction(){
document.getElementById("demo").innerHTML = add();
}
</script>
</body>
</html>
自己呼び出し関数を使用してカウンターを 0 に1 回設定し、add() の反復ごとにカウンターを 1 ずつインクリメントすると述べています。ただし、関数を自己呼び出しするために使用される中かっこが、counter = 0
カウンターをインクリメントする関数と関数の両方を囲んでいることがコードでわかります。両方のコマンドが自己呼び出し関数内にどのように正確に配置できるかを視覚化するのは難しいですが、一方は 1 回だけ実行され、もう一方は反復ごとに実行されます。