闭包那些事
定義:
在一個內(nèi)部函數(shù)里, 對在外部作用域(但不是在全局作用域) 的變量進行引用, 那么內(nèi)部函數(shù)就被認為是閉包(closure)。
?
例子:
?
1 def make_adder(addend): 2 def adder(augend): 3 return augend + addend 4 return adder 6 p = make_adder(23) 7 q = make_adder(44) 8 9 print p(100) 10 print q(100) 1112 運行結(jié)果: 13 123 14 144
?
?
?
?
閉包必須滿足三個條件:
1. 必須有內(nèi)嵌函數(shù)
2. 內(nèi)嵌函數(shù)必須引用外部函數(shù)中的變量
3. 外部函數(shù)返回值必須是內(nèi)嵌函數(shù).
?
使用閉包注意事項:
1.閉包中是不能修改外部作用域的局部變量的
2.通過return返回的每一個閉包內(nèi)的活動對象都是獨立的
?
作用:
用途1:當閉包執(zhí)行完后,仍然能夠保持住當前的運行環(huán)境。
用途2:閉包可以根據(jù)外部作用域的局部變量來得到不同的結(jié)果。
?
轉(zhuǎn)載于:https://www.cnblogs.com/lmh001/p/9552406.html
總結(jié)
- 上一篇: Express + Element-ui
- 下一篇: 五分钟搞懂后缀数组!