閉包持有局部變量的狀態(tài)原理是啥啊?
這么厲害的閉包呢
這么厲害的閉包呢
2018-12-02
如果按照1樓這樣說的,大量的閉包代碼,會不會導(dǎo)致內(nèi)存泄漏。尤其在移動端,導(dǎo)致OOM?
延長導(dǎo)出了作用域
我覺得更像js中的閉包;每一個函數(shù)調(diào)用后就會被垃圾回收機(jī)制給回收掉內(nèi)部的變量,然有了閉包,外部的變量引用了函數(shù)內(nèi)部的變量,所以函數(shù)不能被銷毀,因此就能持有狀態(tài)了。
這應(yīng)該就是dart中所說的方法即是對象吧。既然是對象,那么方法的局部變量也就可以理解成對象的屬性了。個人理解,也不知道說的是否對
舉報
2022-04-30
js中閉包的原理是函數(shù)的作用域鏈,函數(shù)上下文可以訪問當(dāng)前函數(shù)中的局部變量,如果當(dāng)前函數(shù)中沒有這個變量就會沿著作用域鏈向上查找,如果存在引用,則不會被GC回收,dart語言應(yīng)該差不多同理