我读过的文章说:


因为声明的函数是共享的,所以使用prototype最快。 this article中解释了更多细节,与使用“ improvisions”相比,点击JS本机原型将提高性能。
闭包应该perform worse,因为它的每次创建都会返回一组函数和变量的单独副本。
对象(函数)属于闭包,但带有this。具有访问控制(公共/私有)。他们是supposed to be better than closures
对象文字(看起来像JSON的文字)的行为类似于对象,但没有隐私感。它们可与JAVA中的静态方法媲美。我没有文章可供参考,我只是将其包括在内以作比较。


在进行我的项目之前,我一直在构建“类”,因此我很期待原型获胜。但是,关闭使他们失望了。怎么来的?这里有一些让步吗?看不见的偏见?

我可能对JS并不陌生,但是对于这些优化概念我是全新的,请耐心等待。我还在研究这些东西。

最佳答案

闭包的表现应该不是很理想。闭包会导致每个对象获得自己的函数副本。但是,只要您有足够的内存,就不会造成任何实际的性能问题。如果有的话,闭包甚至可能会更快,因为它们不必沿着原型链向上查找属性,它们始终位于对象的第一级。

闭包的真正缺点是内存使用率,而不是速度。当创建大量对象时,这可能成为一个问题。

您还必须考虑有问题的运行时。不同的JavaScript引擎将根据他们认为最重要的情况针对不同的情况进行优化。

07-26 09:29
查看更多