【问题标题】:Javascript objects vs primitivesJavascript 对象与原语
【发布时间】:2012-02-27 01:27:15
【问题描述】:

我目前在 OOP Javascript 方面进行了大量开发。 特别是,我经常处理坐标和尺寸,并且我定义了许多变量作为对象,如下所示:

coords = {
    x:10,
    y:15
};

dimensions = {
    width:500,
    height:250
}

但我想知道将值指定为单独的原始变量是否会更快/更有效:

coordX = 10;
coordY = 15;

dimWidth = 500;
dimHeight = 240;

有人可以简要解释一下将变量字符串化的每种方法的优缺点吗? 可用性方面,我发现对象更容易,因为您可以将相关值组合在一起;虽然我认为它比较慢。 但它是否比定义更多变量更慢或占用更多内存?

干杯。

编辑: 哇!没想到会有这么多回复,尤其是这么快!谢谢大家的回复。

似乎任何性能差异都是可以抵消的,但这可能只适用于简单的脚本。 我所拥有的是一个恒定循环,它需要以尽可能高的 FPS 运行。每个循环使用许多对象变量来存储数据,如上所示。那么在这些情况下是否存在性能问题的可能性?

【问题讨论】:

标签: javascript performance object coordinates primitive


【解决方案1】:

性能应该不是问题 - 属性是在对象上声明的,并且不需要原型链来访问它们(javascript 引擎在这个领域也变得越来越高性能)。

我个人更喜欢在这种情况下使用 OO 方法,因为它允许对值进行逻辑分组,这对于查看您的代码的任何其他开发人员来说会更清楚(如果您像我一样,可能你在几个月的时间内!)。

【讨论】:

  • 谢谢。我更喜欢在这种情况下使用对象,因为它更“整洁”。我只是想确定它们是否会在不同方法之间产生任何明显的性能变化。干杯
  • 不仅如此,以后扩展对象更容易,一串变量可能会变得乱七八糟。
  • 我将其标记为已接受的答案只是因为它比另一个解释得更多,即使他们陈述的内容几乎相同。感谢所有提供帮助的人。
【解决方案2】:

您使用最适合手头问题的任何方法。

如果在您的代码中使用对象有意义,请使用对象。如果变量更有意义,请使用它们。

【讨论】:

  • 感谢您的回答,这就是我目前正在做的事情,但我的脚本非常广泛并且正在消耗 CPU,所以我希望尽可能提高性能。
猜你喜欢
  • 2023-03-21
  • 1970-01-01
  • 2012-05-16
  • 1970-01-01
  • 2011-08-09
  • 2013-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多