JavaScript變量的值我已經找到一個javascript例子,我需要一個解釋:在封閉
<html>
<body>
<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>
我不明白,爲什麼VAR計數器的值讓每一個我按下按鈕,而在其他地方的時間增加本教程的內容爲:「聲明JavaScript變量的生命週期時啓動。」 當函數完成時,局部變量將被刪除。「
每次單擊按鈕時,執行'add',執行'counter + = 1'。這會給'counter'的當前值增加'1'。 –
*「計數器是一個本地變量,因此在執行函數後會被刪除」*如果已關閉,則不會。 *「每次函數啓動時它應該爲0」*您是對的,但包含'var counter = 0;'的函數僅在頁加載時執行*一次*。 –
如果你沒有使用IIFE,可能會更容易一些:'makeAdd(){var counter = 0;返回函數(){return counter + = 1;}; }; var add = makeAdd();'。 'add'被賦予'makeAdd'的返回值,這是一個函數。 –