通过标识符引用Javascript引用对象或直接引用它?

时间:2017-06-05 14:28:38

标签: javascript object memory

我在Javascript中创建了很多对象,我需要能够引用它以便稍后检索,例如通过数组。现在我想知道如何在数组中保存对象引用。

对象将与外部库交互,外部库可以使用对象ID或对象本身。我知道Javascript将对象变量视为指针而不是对象副本,因此直接引用对象是否安全?

起初我在想“如果我保存对象的ID,那会使内存使用率降低”,但这是真的吗?对象变量*占用多少内存而不是整数变量?

*指向对象的指针,而不是对象数据

此外,如果直接保存对象是可行的方法,是否可以使用array.push()将新对象添加到数组中? array.push()是创建副本还是像变量一样工作?

2 个答案:

答案 0 :(得分:1)

是的,您可以直接引用这些对象。如果您真的关心内存使用情况,我会说传递ID的方式将使用更多内存,因为您必须维护另一组映射。

直接传递对象将使JavaScript引擎直接使用对象引用。这不会影响内存使用,只要你不克隆任何内容。

答案 1 :(得分:1)

我认为相关问题是天气或不保存整数,并且稍后将其用作标识符比保存对象的引用更有效。

我在数组中使用引用。参考大小与数字的大小可以忽略不计。