首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >值得缓存对嵌套对象的引用吗?

值得缓存对嵌套对象的引用吗?
EN

Stack Overflow用户
提问于 2017-03-06 14:09:56
回答 1查看 58关注 0票数 0

假设我有这样的东西:

代码语言:javascript
复制
var MyNamespace = {
    Presets: {
        Thing: {
            something: {
                rate: 10
            }
        }
    }
};

如果我在每秒触发数百次的rate函数中使用update(),那么最好像这样缓存对变量的引用:

代码语言:javascript
复制
var rate = MyNamespace.Presets.Thing.something.rate;
function update() {
    var a = 5 + rate;
    console.log(a);
    return a;
}

或者我可以这么做:

代码语言:javascript
复制
function update() {
    var a = 5 + MyNamespace.Presets.Thing.something.rate;
    console.log(a);
    return a;
}

我认为缓存会更快,但我的问题是它是否足够快,是否有理由这样做。这是一个微观优化,还是我应该担心的事情?

编辑

澄清:

  1. 我用相位器
  2. update()是一个类的成员。
  3. 相位器内部使用requestAnimationFrame()更新游戏逻辑。当它这样做时,它将我的类称为‘update()’。

我做了一个jsPerf测试。它没有显示出显著(或持久)的差异:

  • Firefox 51.0.0
  • 铬56.0.2924
  • 边缘14.14393.0
  • IE 11.0.0

有时它会显示没有缓存的测试会慢一些。但有时,这是不一致的,而且也不太一致。不过,我想JavaScript会在引擎盖下对这种东西进行优化。

EN

回答 1

Stack Overflow用户

发布于 2017-03-06 14:23:52

据了解,JavaScript总是使用对象作为引用。这就是为什么有些JS框架有对象的克隆方法,甚至是深嵌套对象的方法。在我看来,这只是一个品味或可读性的问题。在我看来,你的第一个例子更容易读懂。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42627733

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档