js储存dom元素是引用储存吗?

我想到了一个响应式的实现方式就是把数据与dom存在一个类里,通过getter setter劫持修改数据从而触发直接修改对应的dom,但有个问题是在想如果数据过多会占用很多的内存吗,首先这个性能肯定会比vue react这种需要diff 组件级更新的好太多,但是就是内存考虑,所以储存dom是储存的引用还是js又把tag的属性存了一遍?

该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:

在 JavaScript 中,DOM 元素是对象,通过 document.createElement() 或者其它方式创建的 DOM 元素都是对象。当你使用 document.getElementById() 或者其它方式获取 DOM 元素时,实际上获取的是一个指向该元素对象的引用。因此,储存 DOM 元素时,实际上是储存了这个对象的引用。

对于你提到的响应式实现方式,如果将数据与 DOM 元素存储在同一个类中,实际上是将数据与 DOM 元素对象的引用存储在同一个对象中。因此,当你修改数据时,会触发对应的 DOM 元素对象的更新。这种方式不会占用太多的内存,因为只是存储了 DOM 元素对象的引用,并没有存储 DOM 元素对象的所有属性。

但是,如果数据量非常大,可能会占用较多的内存,因为每个对象都会占用一定的内存空间。在这种情况下,你可以考虑使用虚拟滚动等技术来优化性能,以减少内存占用。


如果以上回答对您有所帮助,点击一下采纳该答案~谢谢

头脑简单