![]() |
1
70
构造函数和原型是实现类和实例的合理方法之一。它们并不完全对应于该模型,因此您通常需要选择一个特定的方案或助手方法来实现原型方面的类。( Some background on classes in JS .)
|
![]() |
2
13
模块模式比原型更简单、更优雅。不过,先考虑手机。对于中型/大型对象来说,这不是一个相关的模式,因为初始化需要在开始之前解析整个块。多个闭包还创建了循环依赖项,垃圾收集器不会释放这些依赖项(尤其是IE),这会导致在关闭窗口(或选项卡)之前不会释放更大的内存占用-请检查chrome任务管理器以进行比较- 加载时间与使用模块模式的对象大小成反比,而原型继承则不是这样。 上面的陈述是通过以下多个基准来验证的: http://jsperf.com/prototypal-performance/54 如上次测试所示。小对象最好初始化为普通对象(没有这些模式)。它适用于不需要闭包或继承的单个对象。明智的做法是评估您是否需要这些模式。 |
![]() |
3
4
原型模式帮助我们扩展功能,并且不管对象的数量如何,内存中只有一个函数实例。在模块模式中,每个对象在内存中创建一个新的函数实例,但它提供了私有/公共变量的概念,并有助于封装变量和函数。 |