JavaScript 的闭包

banq 13-12-10
                   


2013-12-07 13:06 "@
lostalien"的内容
可我还是觉得js语法和一些特性挺别扭的。比如要用闭包来实现对象属性的私有,很多语言直接用个private关键字就行了。。。难道这其中有啥奥妙?? ...


用闭包实现对象属性的私有,可从可变性与不变性角度理解。

如果这个私有属性是一个可变的状态,也就是要做一个全局变量,大家都可以操作改变它,那么必须通过属性的所有者,通过这个所有者的函数方法对这个变量操作,用方法行为包装属性。这点与DDD聚合根的要求非常类似。

见这篇文章:Javascript的闭包
[该贴被banq于2013-12-10 13:39修改过]