传统语言如C和Java中,函数/方法不能作为变量/属性/参数/返回值使用,只有声明和调用(立即执行)两种方式,只能将立即执行的结果作变量/属性/参数/返回值使用。
闭包:
函数本身作为变量/属性/参数/返回值使用;
基于1,闭包可延迟执行,而不像传统语言必须立即执行;
闭包在作为变量/属性/参数/返回值使用时,能捕获外层作用域的变量,在执行时使用这些值;
可在JavaScript中实现类似Java的私有变量的形式(参考链接)。
箭头函数:首先是语法更加简化的匿名函数,其次this指向定义时的词法作用域,从而修复了JavaScript中传统函数this指向混乱的问题