对于闭包的理解,按照下面2点切入即可:
1,闭包函数的返回值是函数
2,返回的函数绑定在闭包函数内一个变量上。
对于第2条如果不好理解的话,可以这么理解。把外层的函数去掉,把函数内定义的变量想象成全局变量,把返回的函数想象成普通函数。
本质上,就是返回了一个函数,这个函数内操作的变量是在另一个函数中定义的,而且是以引用的形式被调用。一个闭包只有没有外界引用时,才会连同状态一起被销毁。
典型应用场景:当函数的返回值是接口类型时,可以返回实现了该接口的类型的对象。
对于闭包的理解,按照下面2点切入即可:
1,闭包函数的返回值是函数
2,返回的函数绑定在闭包函数内一个变量上。
对于第2条如果不好理解的话,可以这么理解。把外层的函数去掉,把函数内定义的变量想象成全局变量,把返回的函数想象成普通函数。
本质上,就是返回了一个函数,这个函数内操作的变量是在另一个函数中定义的,而且是以引用的形式被调用。一个闭包只有没有外界引用时,才会连同状态一起被销毁。
典型应用场景:当函数的返回值是接口类型时,可以返回实现了该接口的类型的对象。