ES3之closure ( 閉包 )
阿新 • • 發佈:2018-05-05
console java script src urn sum bat sof var 中,game 則為 Neo Contra。
閉包是函數和聲明該函數的詞法環境的組合。
JavaScript中的函數會形成閉包。 閉包是由函數以及創建該函數的詞法環境組合而成。這個環境包含了這個閉包創建時所能訪問的所有局部變量。
function playGame(){ var name = ‘Ace Combat‘; function playGame_(){ console.log(‘[play game]‘,name); } return playGame_; } var play = playGame(); play();
創建多個閉包
playA
和 playB
都是閉包。它們共享相同的函數定義,但是保存了不同的詞法環境。在 playA的環境中,game 為 Ace Combat。而在 playB
function playGame(game) { function playGame_() { console.log(‘[play game]‘, game); } return playGame_; } var playA = playGame(‘Ace Combat‘); var playB = playGame(‘Neo Contra‘); playA(); playB();
ES3之closure ( 閉包 )