JS閉包與JS函數

先說說在網上看到的一個閉包案例:閉包

var add = (function () {
var counter = 0;
return function () {return counter += 1;}
})();
function myFunction(){
document.getElementById("demo").innerHTML = add();
}函數

這個案例代碼綜合度較高,再加上閉包,簡直不要太懵逼!get

整理了下,將以上代碼等效於下列代碼:io

var add = (function () {
var counter = 0;
return function () {return counter += 1;}
});
var m=add();     //m===function () {return counter += 1;},m此時等同於函數
function myFunction(){
document.getElementById("demo").innerHTML = m();    //m()===return count+=1,m()值的是函數m的運行結果,即返回的counter值
}function

這麼轉換後,瞬間就看懂了!其實所謂的閉包就是函數中的函數~demo

相關文章
相關標籤/搜索