我想知道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对象。
问题是,哪个性能更高?我们怎么能测量呢?
答案 0 :(得分:2)
您应该根据需要使用尽可能多的参考。一个参考是4字节的内存。代理类用于代理类而不用于节省内存。 代码质量是一个非常重要的工厂,进行非标准优化将是以质量为代价的。 同时你如何使用代理保存任何内存?如果要初始化代理,则需要对象引用。如果你有参考,你不需要代理来访问它。
答案 1 :(得分:0)
一般来说,参考资料并不昂贵。如果有的话,他们恰恰相反。
就是否使用引用或克隆/创建对象而言,它实际上取决于您的用例。如果您澄清了您的用例,我会更新我的回答,更好地建议您是否应该使用引用。