在Javascript的框架开发中,面向对象式编程和面向函数式编程各有长处,因况而异。
除了在单例工厂中设置一些类型常量外,闭包通常被用来模拟类的私有变量和方法。
结合js的prototype机制,一个具有面向对象特点的js函数能够被以减少内存占用的形式实例化出来。
每创建一个新的Tree实例,内存会为其私有变量,私有方法和所有能够访问私有变量和私有方法的方法开辟物理空间,而prototype中的方法始却始终只有一个。因此我们可以将那些不需要保存自身状态信息的方法放到js函数式对象的prototype中去,以节省浏览器的内存开销。