JS中对象数据存储

对象数据存储在堆栈中。栈的数据读取,写入速度快,但是存储的内容较少。堆的读取和写入速度慢,但是存储的内容多。举个例子来说就像电脑中内存和硬盘,内存就像栈,需要经常获取,写入速度比较快时需要写道内存也就是需要存储在栈中的数据,其中字符型,数值型,布尔型,undefined存储在栈中,栈中,一旦该变量不再使用时就会被清理掉。而对象是存储在堆中,当堆中有对象时,它会相对应内存中有一个存储的地址,在栈中obj存储了在堆中数据的地址,当调用数据时,去堆中调取对应堆中的数据的地址获取出来。



如上图,代码执行时一行接着一行,先创建一个对象,打印在控制台后,把obj的a值改为10,在控制台点开对象前的箭头时,obj的a值却已经更改为10,这就是我们在打印后去更改,可在去点击箭头时,才会去堆中对应地址获取数据,所以获取的就是最新的数据。


如上图,如果将obj赋值给obj1,就相当于把obj在堆中存储数据的地址给到obj1,obj1更改对象原有的数据时,obj也会跟着更改。

如上图,如果将obj赋值给obj2,但在obj生成新对象时,就会在栈中创建一个新的存储数据的地址,所以后更改对象数据时更改到就是新的存储数据的地址中,而obj2的存储数据地址还是原来的对象地址,所以打印后只有对象在没有生成新对象之前的堆中地址存储的数据。


如上图,如果将obj赋值给obj3,两个对象在堆中存储地址相同时,我们两个对象都不想去使用时,把堆中对象存储的地址丢弃时,该数据在堆中存在,并且找不到它,当如此情况非常多时,称之为内存泄漏,会造成卡死,想要解决掉这个问题,

就需要把对象堆中存储数据地址的所有引用对象全部先设置为null,之后再去重新赋值。

JavaScript中对象数据存储相关推荐

  1. C# 类对象数据存储(Object自定义序列化)

    获取Object对象的所有成员变量: FieldInfo[] fields = obj.GetType().GetFields(); // obj可以为任意类型对象 获取变量名称: string na ...

  2. Android中的数据存储

    Android中的数据存储 1.SharedPreference存储(共享参数) 1.1.使用SharedPreferences存储和读取数据的步骤 存储数据 保存数据一般分为四个步骤: 使用Acti ...

  3. JavaScript中对象(Object)的方法

    JavaScript中对象方法总结: 资料来源:网道-互联网开发文档 [https://wangdoc.com/] 1.Object.getPrototypeOf(Object) Object.get ...

  4. datasg中的数据存储情况

    datasg中的数据存储情况 转载于:https://www.cnblogs.com/LoveFishC/archive/2012/07/27/3846618.html

  5. android中资源文件的两种访问方式,在android开发中进行数据存储与访问的多种方式介绍...

    在android开发中进行数据存储与访问的多种方式介绍 更新时间:2013年06月07日 16:24:23   作者: 很多时候我们的软件需要对处理后的数据进行存储或再次访问,Android为数据存储 ...

  6. Swift中的数据存储

    Swift中的数据存储 1.NSUserDefault 用于保存一些用户名密码等,用户下次登录不用重复填写用户名密码 2.SSKeyChain 用于保存设备的唯一ID,用户卸载APP并重装后,保证设备 ...

  7. javascript中对象_了解JavaScript中的承诺

    javascript中对象 我向您承诺,到本文结束时,您将更好地了解JavaScript. 我与JavaScript有一种"爱与恨"的关系. 但是尽管如此,JavaScript一直 ...

  8. 删除javaScript中对象的属性

    删除javaScript中对象的属性 语法 delete 对象.属性;

  9. javascript中对象的assign()方法

    javascript中对象的assign()方法 Object.assign() 方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象.它将返回目标对象. 语法: Object.assign( ...

最新文章

  1. Unterminated array at character 6 of xxx
  2. 转《刘润的数字化家庭》
  3. ansible playbook实战——下发部署nginx以及更新、回滚
  4. Tensorflow-gpu在windows系统下的安装及使用(使用Pycharm IDE)
  5. day18 15.自定义连接池
  6. 魔兽世界转服务器显示完成,魔兽世界怀旧服:TAQ变简单了,为什么还是出现了AFK大潮?...
  7. OpenCV学习笔记:视频处理
  8. epub 深入linux内核架构_深入分析Linux内核源代码6-Linux 内存管理(2)
  9. 自定义日历控android,android 一个简单的自定义日历控件,让你掌控时间
  10. 计算机考试中的移动,WPSOffice2002中表格的移动方法
  11. Northwind 数据库 多版本
  12. C# 判定素数 高效算法 拉宾米勒算法
  13. window启动activemq失败
  14. dw自动滚动图片_Dreamweaver实现滚动图片文字
  15. 计算机组装与维护考试题a卷,计算机组装与维护考试题A卷.docx
  16. Wise Duplicate Finder(重复文件查找工具)v1.2.9.40中文免费版
  17. SQL insert into 插入的单行,多行的情况
  18. jstack分析 (Thread state=IN_NATIVE) mark
  19. Ubuntu 磁盘管理  命令行工具
  20. 产品经理和项目经理的区别,读这一篇就够了!(史上最全总结)

热门文章

  1. 94、厂房和仓库的耐火等级
  2. 迅为龙芯开发板Loongnix系统烧写-loognix图形化安装
  3. JavaScript作用域解析以及例题
  4. 如何将彩色图片改成黑白色?
  5. 使用阿里云OSS服务搭建私人图床
  6. 计算机考试打印测试页,通过电脑打印测试页(适用于 Win8/8.1/10)
  7. 【知乎(从第10人开始最新补充)】你熟知的领域有哪些重要的知识或思维方法,业外人士因爲不瞭解它們而常常陷入困境?
  8. 说说双面打印文档自动扫描后的页面重组
  9. vs2019安装 assis x
  10. 2022年电工(初级)考试题库模拟考试平台操作