广告
返回顶部
首页 > 资讯 > 前端开发 > VUE >JavaScript中的弱引用和强引用是什么
  • 188
分享到

JavaScript中的弱引用和强引用是什么

2024-04-02 19:04:59 188人浏览 安东尼
摘要

本篇内容介绍了“javascript中的弱引用和强引用是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

本篇内容介绍了“javascript中的弱引用和强引用是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

JavaScript中的弱引用和强引用是什么

什么是弱引用和强引用

JavaScript 中强引用:对象的引用在 JavaScript 中是强引用,也就是将一个引用对象通过变量或常量保存时,那么这个变量或常量就是强引用,这个对象就不会被回收。

JavaScript 中弱引用: WeakMaps 和 WeakSets 是我们在 JavaScript 使用弱引用唯一途径,将一个对象作为键添加到 WeakMap 或 WeakSet 中并不能防止这些对象被回收。

举例说明弱引用和强引用

强引用就是一个小孩A牵着一条狗,他们之间通过狗链儿连着。

弱引用就是,旁边有个人B指着A牵的狗,说:嘿,那有条狗,B指向那条狗,但他们之间没有是指绑在一起的东西。

当A放开狗链,狗就会跑掉(被垃圾回收),无论B是不是还指着。

但是,当B不再指着那条狗,狗还被A牵着,不会影响它是否跑掉。
JavaScript中的弱引用和强引用是什么

在JavaScript中演示弱引用和强引用

let people = {name:'张三',age:25}
let people1 = people;

在上面的代码中我们将{name:'张三',age:25}赋值给变量people时,在内存中会存在一根线将它们连接起来:

JavaScript中的弱引用和强引用是什么
然后创建people1变量,将people赋值给people1,相当于people1也引用这个对象:
JavaScript中的弱引用和强引用是什么
我们再来看当我们使用es6新引入的类型WeakSet和WeakMap在存储引用值时,是一种什么样的情况。

let people = {name:'张三',age:25}
let people1 = people;

let set = new WeakSet();
set.add(people);

我们新建了一个WeakSet()实例,通过add方法将添加了people,people对应的引用值是{name:'张三',age:25}

JavaScript中的弱引用和强引用是什么

可以看到:set实例中的值{name:'张三',age:25}引用指向于{name:'张三',age:25}(在实际内存中他指向的是该数据的栈的指针引用,该栈指向对应堆中的对应的那个地址的值)。并且需要特别注意的是,这条弱引用的“线”是透明的,这是什么意思?他和强引用的区别在哪里?

一句话概述:强引用被{name:'张三',age:25}这个引用认可为一个“连接”,而弱引用不被认可。即该引用并不知道它被set实例所引用。

这说明垃圾回收也不知道该引用被set实例所引用。那么如果该引用的所有强引用连接都被断开了(变量被赋值为null或其他情况),那么该引用会被当作垃圾销毁,即使set实例还在引用着该引用。

let people = {name:'张三',age:25}
let people1 = people;

let set = new WeakSet();
set.add(people);
people = null;
people1 = null;

我们把强引用都断开会出现什么情况呢?

JavaScript中的弱引用和强引用是什么

因为所有的强引用都断开了,那么垃圾回收认为该引用{name:'张三',age:25}不需要了,就会将他销毁。那么对应的set实例所用到的该引用也都不复存在了,即使set实例还在使用着该引用。

“JavaScript中的弱引用和强引用是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: JavaScript中的弱引用和强引用是什么

本文链接: https://www.lsjlt.com/news/97361.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JavaScript中的弱引用和强引用是什么
    本篇内容介绍了“JavaScript中的弱引用和强引用是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!...
    99+
    2022-10-19
  • java强引用和弱引用有什么区别
    Java的引用分为四种:强引用(Strong Reference)、软引用(Soft Reference)、弱引用(Weak Ref...
    99+
    2023-10-27
    java
  • JavaScript 弱引用强引用底层示例详解
    目录正文1. 弱引用2. 强引用3. JavaScript 的垃圾收集3.1 可达性4. Set VS WeakSet5. Map VS WeakMap6. WeakMap 的应用6...
    99+
    2022-11-13
    JavaScript 弱引用强引用 JavaScript 引用
  • Java中的强引用,软引用,弱引用,虚引用的作用介绍
    目录1.强引用( Strong Reference )2.软引用( Soft Reference )3.弱引用( Weak Reference )4.虚引用( PhantomRefe...
    99+
    2022-11-13
  • java中弱引用和软引用有什么区别
    java中弱引用和软引用有什么区别?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。常用的java框架有哪些1.SpringMVC,Spring Web MVC是一种基于Java的...
    99+
    2023-06-14
  • Java中弱引用的概念和作用是什么
    本篇内容介绍了“Java中弱引用的概念和作用是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!概览本文会通过对弱引用的定义讲起,然后通过案...
    99+
    2023-06-16
  • Java中的弱引用有什么用
    这篇文章主要讲解了“Java中的弱引用有什么用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java中的弱引用有什么用”吧!Java里一个对象obj被创建时,被放在堆里。当GC运行的时候,发...
    99+
    2023-06-15
  • weakMap为什么是弱引用原理
    目录前言弱引用 vs 强引用Map vs WeakMap前言 聊一下WeakMap弱引用,看了很多文章发现说的不对,给出的demo经过尝试也是错误的,哎,难搞也要搞 弱引用 vs ...
    99+
    2023-02-10
    weakMap 弱引用 weakMap 弱引用原理
  • Python中弱引用怎么使用
    背景开始讨论弱引用( weakref )之前,我们先来看看什么是弱引用?它到底有什么作用?假设我们有一个多线程程序,并发处理应用数据:# 占用大量资源,创建销毁成本很高\ class Data:\ def __init__(self...
    99+
    2023-05-14
    Python
  • Android利用软引用和弱引用避免OOM的方法
    想必很多朋友对OOM(OutOfMemory)这个错误不会陌生,而当遇到这种错误如何有效地解决这个问题呢?今天我们就来说一下如何利用软引用和弱引用来有效地解决程序中出现的OOM...
    99+
    2022-06-06
    方法 Android
  • 怎么在java中回收弱引用
    本篇文章给大家分享的是有关怎么在java中回收弱引用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Java可以用来干什么Java主要应用于:1. web开发;2. Androi...
    99+
    2023-06-14
  • .Net中的弱引用字典WeakDictionary和ConditionalWeakTable怎么使用
    这篇文章主要介绍“.Net中的弱引用字典WeakDictionary和ConditionalWeakTable怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“.Net中的弱引用字典WeakDi...
    99+
    2023-07-02
  • PHP中弱引用的示例分析
    这篇文章主要介绍PHP中弱引用的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!php的框架有哪些php的框架:1、Laravel,Laravel是一款免费并且开源的PHP应用框架。2、Phalcon,Phal...
    99+
    2023-06-15
  • .Net中的弱引用字典WeakDictionary和ConditionalWeakTable介绍
    有的时候,我们需要给某些数据添加一些附加信息,一种常用的做法是使用一个Dictionary在填充这些附加信息如: var data = new Data(); var...
    99+
    2022-11-13
  • 十分钟理解Java中的弱引用
    本篇文章尝试从What、Why、How这三个角度来探索Java中的弱引用,帮助大家理解Java中弱引用的定义、基本使用场景和使用方法。由于个人水平有限,叙述中难免存在不准确或是不清晰的地方,希望大家可以指出,谢谢大家:)1. What——什...
    99+
    2023-06-02
  • javascript引擎的作用是什么
    这篇文章主要介绍javascript引擎的作用是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! JavaScript引擎用于将javascript代码...
    99+
    2022-10-19
  • javascript中的引擎是什么
    本篇内容主要讲解“javascript中的引擎是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“javascript中的引擎是什么”吧! ...
    99+
    2022-10-19
  • Java中怎么用弱引用堵住内存泄漏
    本篇内容主要讲解“Java中怎么用弱引用堵住内存泄漏”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java中怎么用弱引用堵住内存泄漏”吧!虽然用 Java™ 语言编写的程序在理论上是不会出现“内...
    99+
    2023-06-03
  • javascript引用类型指的是什么
    这篇文章主要介绍了javascript引用类型指的是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1、概念引用类型有Object:Array、Function、Date、...
    99+
    2023-06-15
  • 关于C语言中弱符号与弱引用的实际应用问题
    最近在学习《程序员的自我修养——链接、装载与库》时,get到了一个新的知识点:弱符号与弱引用。书中简短的介绍,让我了解到弱符号的含义以及使用方式。了解我的朋友,应该知道我喜欢将知识...
    99+
    2022-11-12
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作