为了账号安全,请及时绑定邮箱和手机立即绑定

正在回答

5 回答

js中闭包的原理是函数的作用域链,函数上下文可以访问当前函数中的局部变量,如果当前函数中没有这个变量就会沿着作用域链向上查找,如果存在引用,则不会被GC回收,dart语言应该差不多同理

0 回复 有任何疑惑可以回复我~

如果按照1楼这样说的,大量的闭包代码,会不会导致内存泄漏。尤其在移动端,导致OOM?

0 回复 有任何疑惑可以回复我~

延长导出了作用域

0 回复 有任何疑惑可以回复我~

我觉得更像js中的闭包;每一个函数调用后就会被垃圾回收机制给回收掉内部的变量,然有了闭包,外部的变量引用了函数内部的变量,所以函数不能被销毁,因此就能持有状态了。

2 回复 有任何疑惑可以回复我~

这应该就是dart中所说的方法即是对象吧。既然是对象,那么方法的局部变量也就可以理解成对象的属性了。个人理解,也不知道说的是否对

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

闭包持有局部变量的状态原理是啥啊?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信