Weakmap的详细解释是什么?

2026-04-28 11:220阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1151个文字,预计阅读时间需要5分钟。

Weakmap的详细解释是什么?

首先,我们来看一个例子:

javascriptlet obj={ name: 'toto' }; // { name: 'toto' }// 这个对象可以被读取到,因为obj这个变量对其有引用// 将引用覆盖掉 obj=null; // 这个对象将不会被内存回收,因为还存在其他引用// 将引用覆盖掉后,这个对象将被从内存中移除

这个例子中,对象`obj`可以被读取到,因为变量`obj`对其有引用。当我们将`obj`赋值为`null`时,这个对象将不会被立即从内存中移除,因为可能还存在其他引用指向它。只有当所有引用都被移除后,对象才会被垃圾回收机制回收。

先看一个例子

let obj = { name: 'toto' } // { name: 'toto' }这个对象能够被读取到,因为obj这个变量名有对它的引用 // 将引用覆盖掉 obj = null // 这个对象将会被从内存中移除,因为我们已经失去了对它所有的引用

再来看另外一个例子

let obj = { name: 'toto' } let arr = [ obj ] obj = null

在这个例子中,对象{name:'toto'}不会被从内存中移除,因为数组arr保存了对它的引用 强引用和弱引用之间有什么区别呢?

事实上,javascript中的大多数变量都保存着对一个对象的强引用。

阅读全文

本文共计1151个文字,预计阅读时间需要5分钟。

Weakmap的详细解释是什么?

首先,我们来看一个例子:

javascriptlet obj={ name: 'toto' }; // { name: 'toto' }// 这个对象可以被读取到,因为obj这个变量对其有引用// 将引用覆盖掉 obj=null; // 这个对象将不会被内存回收,因为还存在其他引用// 将引用覆盖掉后,这个对象将被从内存中移除

这个例子中,对象`obj`可以被读取到,因为变量`obj`对其有引用。当我们将`obj`赋值为`null`时,这个对象将不会被立即从内存中移除,因为可能还存在其他引用指向它。只有当所有引用都被移除后,对象才会被垃圾回收机制回收。

先看一个例子

let obj = { name: 'toto' } // { name: 'toto' }这个对象能够被读取到,因为obj这个变量名有对它的引用 // 将引用覆盖掉 obj = null // 这个对象将会被从内存中移除,因为我们已经失去了对它所有的引用

再来看另外一个例子

let obj = { name: 'toto' } let arr = [ obj ] obj = null

在这个例子中,对象{name:'toto'}不会被从内存中移除,因为数组arr保存了对它的引用 强引用和弱引用之间有什么区别呢?

事实上,javascript中的大多数变量都保存着对一个对象的强引用。

阅读全文