42 談談你對閉包的理解?

2022-03-17 08:27:23 字數 667 閱讀 6308

再說說閉包之前,先說一說什麼是外函式,什麼是內函式?

外函式:函式a的內部定義了函式b,那麼函式a就叫做外函式

內函式:函式b就叫做內函式

什麼是閉包?

在乙個外函式中定義了乙個內函式,內函式裡運用了外函式的臨時變數,並且外函式的返回值是內函式的引用。這樣就構成了乙個閉包。

一般情況下,在我們認知當中,如果乙個函式結束,函式的內部所有東西都會釋放掉,還給記憶體,區域性變數都會消失。但是閉包是一種特殊情況,如果外函式在結束的時候發現有自己的臨時變數將來會在內部函式中用到,就把這個臨時變數繫結給了內部函式,然後自己再結束。

def

outer(a):

b = 10

definner():

print(a+b)

return

inner

if__name__ == '

__main__':

demo = outer(5)

demo()

demo2 = outer(7)

demo2()

談談對閉包的理解

說起閉包,讓很多新手頭疼的乙個概念,甚至於有一兩年js基礎的開發人員也沒有搞懂 說到閉包,要從js的作用域說起,js的變數是函式作用域,且變數不能被函式外部訪問,但是可以被函式內部的函式訪問.這稱為js鏈式作用域 1什麼是閉包?我的理解是,閉包就是能夠讀取其他函式內部變數的函式 function t...

對閉包的理解

閉包是什麼 答 閉包就是能夠讀取其他函式內部變數的函式。閉包函式生效的兩個條件 1 必須先定義乙個匿名函式 2 必須要執行一次匿名函式生成閉包函式 匿名函式 匿名函式 demo1 function name 呼叫匿名函式 echo demo1 張無忌 匿名函式也有自己的作用域,除了傳參,還有什麼方式...

談談你對Spring的理解

spring是乙個開源的輕量級的應用開發框架,其目的是用於簡化企業級應用開發,降低 的侵入性和耦合度。spring提供的ioc和aop功能,可以將容器內的元件耦合度降低至最低,即解耦,為將來的工程 的維護提供了方便。spring為系統提供了乙個整體的解決方案,開發者除了可以利用它本身具有的功能外,還...