0

我正在用javascript做一个项目,需要澄清一些事情。我读过 javascript 中的内存管理并不那么重要,因为系统会在后台为我们的程序员做这件事,但我也读过有时缓存“东西”以进行更好的优化是件好事,到目前为止它是非常清楚。例如,当我们在 for 循环中进行计算时,最好创建一个本地 var 并将结果存储在其中,这样我们就不必在循环时一遍又一遍地计算相同的计算。所以我的问题是,我创建了一个 json 对象。然后我想调用它的属性,是否可以通过对象调用它,比如 Car.color 或者当我想访问它或类似的东西时将它存储在本地变量中。对象 = 堆,

另一个例子:

   var map = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
              [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
              [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
              [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
              [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
              [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
              [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
              [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
              [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
              [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
              [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
              [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]];

            if (r >= 0) {
                var num = map[r][k];
                if(num === 0)
                {
                    return false;
                }
            }

num var 是否会改变任何东西(是好是坏?),如果有人可以扩展这个主题,那就太好了,谢谢。

4

1 回答 1

2

在对象深处存储对事物的引用实际上与内存无关。这与不必一遍又一遍地查找事物有关。

将值存储到变量中就像在 Internet 上为页面添加书签一样。它可供您将来参考。如果您不为其添加书签,则需要弄清楚您是如何到达那里的,并一遍又一遍地按照这些步骤进行操作。书签很快,必须重新创建步骤很慢。

但好消息是在现代浏览器中,创建对某物的引用并不意味着代码会更快。在某些情况下它会变慢!这完全取决于浏览器、您要查找的对象类型以及代码在做什么。

  • DOM 查找好处
  • 对一个小数组/对象的引用,不是那么多。

大多数时候,除非您在应用程序中看到主要的性能瓶颈,否则您不应该真正关心它。这就是您在浏览器中查看配置文件选项卡并查看代码永远运行的地方。

于 2012-10-24T21:06:10.993 回答