理解閉包

  1. 什么是「閉包」。
  2. 「閉包」的作用是什么。
    在一個立即執(zhí)行函數(shù)當中:
var local = "aaaa";

function foo() {
    console.log(local)
}

首先,假設(shè)以上幾行代碼運行在立即執(zhí)行函數(shù)當中,那么這就是一個閉包,那么我們可以去定義:

「函數(shù)」和「函數(shù)內(nèi)部能訪問到的變量」(也叫環(huán)境)的總和,就是一個閉包。

也許你會說閉包是需要函數(shù)套函數(shù)的

function foo() {
    var local = 1
    function bar() {
        local++
        return local
    }
    return bar
}

var func = foo()

func()

  1. 套函數(shù)是因為需要局部變量
  2. return bar是為了使用bar,如果把return bar換成window.bar = bar也可以,只要讓外面能夠訪問的到就行。

閉包的作用

閉包常常用來間接訪問一個變量, 換句話說就是隱藏一個變量。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • js之閉包 1、到底什么是閉包 閉包已經(jīng)成為近乎神話的概念,它非常重要又難以掌握,而且還難以定義。 1.1 古老的...
    道無虛閱讀 767評論 0 0
  • 函數(shù)只能在其所在的作用域內(nèi)調(diào)用嗎?怎樣在一個函數(shù)所在的作用域之外調(diào)用該函數(shù)?比如下面代碼,函數(shù)bar定義在函數(shù)fo...
    閆浩奇閱讀 562評論 0 4
  • 來源于 現(xiàn)代JavaScript教程閉包章節(jié)中文翻譯計劃本文很清晰地解釋了閉包是什么,以及閉包如何產(chǎn)生,相信你看完...
    71f241c96a34閱讀 653評論 0 1
  • [toc] 1. 前言 在閱讀Think in java時,關(guān)于內(nèi)部類的作用中出現(xiàn)了閉包這個詞。于是開始百度,了解...
    AItsuki閱讀 9,609評論 7 39
  • 應(yīng)該怎么去理解閉包(一) 關(guān)于閉包,javacript應(yīng)該是我們經(jīng)常接觸的一個概念。最近也看了不少博客,覺得寫得都...
    cseeing閱讀 317評論 0 0

友情鏈接更多精彩內(nèi)容