JavaScript中的额外引用有多贵

时间:2017-11-04 20:50:09

标签: javascript node.js

我想知道JS中有多贵的引用。添加对现有对象的许多引用的替代方法是使用1 ES6代理,然后动态地获取可能的引用。如果您不太可能使用引用,那么使用代理可能会更高效(这是我的理论,但我想知道)。

说我们有5个现有对象:

const foo1 = {}, foo2 = {}, foo3 = {}, foo4 = {}, foo5 = {};

然后我们又有了一个新对象:

const bar = {};

我们可以添加对foos的引用,如下所示:

bar.foo1 = foo1;
bar.foo2 = foo2;
...
bar.foo5 = foo5;

或者,我们可以使用代理,如下所示:

bar.proxy = new Proxy();  // we could actually re-use an existing proxy object to source the foo objects

然后bar.proxy可以动态地获取foo对象。

问题是,哪个性能更高?我们怎么能测量呢?

2 个答案:

答案 0 :(得分:2)

您应该根据需要使用尽可能多的参考。一个参考是4字节的内存。代理类用于代理类而不用于节省内存。 代码质量是一个非常重要的工厂,进行非标准优化将是以质量为代价的。 同时你如何使用代理保存任何内存?如果要初始化代理,则需要对象引用。如果你有参考,你不需要代理来访问它。

答案 1 :(得分:0)

一般来说,参考资料并不昂贵。如果有的话,他们恰恰相反。

就是否使用引用或克隆/创建对象而言,它实际上取决于您的用例。如果您澄清了您的用例,我会更新我的回答,更好地建议您是否应该使用引用。