1. 程式人生 > 資訊 >鋰離子電池儲能電站,寧德時代:國網時代華電大同 300MW/600MWh 儲能專案開工

鋰離子電池儲能電站,寧德時代:國網時代華電大同 300MW/600MWh 儲能專案開工

最近在學JS,記錄一下在學習中遇到的閉包操作。

javascript 程式在執行時,變數都會有生命週期,變數在函式體外定義則是全域性變數,全域性變數,全域性都可以呼叫,安全度不高,且佔用資源。如果在函式體內定義則是區域性變數,區域性變數隨函式呼叫的結束而釋放,迴歸初值。這會相對提高效能,因為區域性變數只在呼叫時才儲存值,呼叫結束自動釋放。所以無法連續做計數操作,此時如果把變數定義成全域性,則可以實現簡單的計數操作。但這樣也就暴露了變數,全域性變數可以被隨處修改,如果程式有很多快構成,快與快之間,如不小心,也容易相互影響變數值。

那如何 既把變數定義在函式體內有能讓變數實現連續計數(或聯絡操作),此刻就要用到閉包。

閉包讓變數被內部函式私有,且迴圈呼叫內部變數。

----------------------------------------------------------------------------------------------

function count(){



var i=0

i+=1

return i





}

console.log(count()) //--輸出為1
console.log(count()) //--輸出為1

console.log(count()) //--輸出為1
本意是輸出1,2,3;卻總是輸出1.因為i是區域性變數。

-------------------------------------------------------------------------
var i=0
function count(){





i+=1

return i





}

console.log(count()) //--輸出為1
console.log(count()) //--輸出為2

console.log(count()) //--輸出為3
i為全域性,儲存連續值。
---------------------------------------------------------------

閉包:閉包在語法上面就是加上一個function函式包住我們要進行的操作,並把函式返回,返回函式就是返回所有操作,就是讓方法連續,這裡的連續累加就是一個方法,返回值是儲存值連續,讓內部變數不會變為初始值。(這是為了自我理解而毫無根據的想法,不做借鑑,只做表達)

結果用return返回。最後把值用一個變數接收。呼叫時變數(),如函式一樣實現呼叫值。
可以想象很多連續操作都可以這樣用,比如連續輸出一段序列,比如在前端點選一次按鈕進行某個連續操作,可以聯想,通過按鈕的點選可以實現按鈕的顏色連續修改,字型大小的調節,視窗的大小的調節,甚至是資料庫的連續取值(這個沒多大意義)
就是呼叫一次函式,出現一次結果,這樣許多連續的東西都可以如此操作。資料庫裡面表格是一行一行連續的,所以自然可以實現呼叫一次某個函式,資料庫裡的行,連續展示。
簡單運算。
var obj=function count(){

var i=0
return function(){


i+=1

return i



}

}()


console.log(o())//--輸出為1

console.log(o())//--輸出為2

console.log(o())//--輸出為3

-----------------------------------------------------------------