我想了解關閉和我在看W3Schools的JavaScript教程。這是他們通過製作計數器給出的一個例子。需要更多關於w3schools的解釋javascript關閉示例
<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>
例子解釋變量添加被分配一個 自我調用函數的返回值。
自調用函數只運行一次。它將計數器設置爲零 (0),並返回一個函數表達式。
這種方式添加成爲一個函數。 「精彩」部分是它可以訪問父範圍中的計數器。
這被稱爲JavaScript關閉。它使 函數具有「私有」變量成爲可能。
該計數器受匿名函數的範圍保護,並且 只能使用add函數進行更改。
注意閉包是一個可以訪問父範圍的函數,即使在父函數關閉後也是如此。
解釋不錯,但有幾件事情不清楚。爲什麼使用自我調用功能是最好的選擇?爲什麼嵌套的匿名函數不是自調函數?爲什麼當計數器已經返回時,你必須返回整個匿名函數?
這W3Schools的是如何寫的例子。它的工作原理雖然這裏是鏈接到「嘗試它」窗口。 http://www.w3schools.com/js/tryit.asp?filename=tryjs_function_counter3請嘗試使用代碼。有用。 – Spilot
讓我編輯.... – Spilot