如何在 JS 中“深冻结”对象?
1.如果咱们想要确保对象被深冻结,就必须创建一个递归函数来冻结对象类型的每个属性:
2.没有深冻结
> let person = {
> name: "Leonardo",
> profession: {
> name: "developer"
> } }; Object.freeze(person); person.profession.name = "doctor"; console.log(person); //output { name: 'Leonardo', profession: { name:
> 'doctor' } }
3.深冻结
> function deepFreeze(object) {
> let propNames = Object.getOwnPropertyNames(object);
> for (let name of propNames) {
> let value = object[name];
> object[name] = value && typeof value === "object" ? deepFreeze(value) : value;
> }
> return Object.freeze(object); } let person = {
> name: "Leonardo",
> profession: {
> name: "developer"
> } }; deepFreeze(person); person.profession.name = "doctor"; // TypeError: Cannot assign to read only property
了解更多前端课程相关技术欢迎关注小编!
如何在 JS 中“深冻结”对象?相关推荐
- JavaScript 日期比较——如何在 JS 中比较日期
日期是开发人员在创建实际应用程序时最常用的数据类型之一. 但通常,开发人员会在这种数据类型上苦苦挣扎,最终使用像 Moment.js 这样的日期库来完成简单的任务,这些任务不值得安装整个包所带来的大包 ...
- js中的DOM对象和jQuery对象的比较
1. 二者的不同之处: 通过jQuery获取的元素是一个数组, 数组中包含着原生JS中的DOM对象. 例如, 针对下面的一个div结构: <div id="Box">& ...
- js中两个对象的比较
代码取自于underscore.js 1.8.3的isEqual函数. 做了一些小小的修改,主要是Function的比较修改. 自己也加了一些代码解读. <!DOCTYPE html> & ...
- JavaScript -- 时光流逝(三):js中的 String 对象的方法
JavaScript -- 知识点回顾篇(三):js中的 String 对象的方法 (1) anchor(): 创建 HTML 锚. <script type="text/javasc ...
- js中关于Blob对象的介绍与使用
js中关于Blob对象的介绍与使用 blob对象介绍 一个 Blob对象表示一个不可变的, 原始数据的类似文件对象.Blob表示的数据不一定是一个JavaScript原生格式 blob对象本质上是js ...
- 如何在JS中应用正则表达式
背景:在之前的随笔中写过C#中如何使用正则表达式,这篇随笔主要讲如何在js中应用正则表达式 如下代码: 1 $("#zhengze").click(function () { 2 ...
- js mysql json字符串转数组中_php数据库数据转换为js中的json对象
/ 1.在company数据user表中取出10条数据,保存为数组 2.在将数组转化为json格式,传递给js 3.用json解析器将传递过来的json字符串转化为json对象, 4.用documen ...
- js中几个对象的区别和用法
js中几个对象的区别和用法 今天总结一下js中几个对象的区别和用法: 首先来说说 parent.window与top.window的用法 "window.location.href" ...
- 【JS笔记】JS中的DOM对象以及通过JS获取DOM结点,操作DOM属性、DOM增删改查
这篇文章,主要介绍JS中的DOM对象以及通过JS获取DOM结点,操作DOM属性.DOM增删改查. 目录 一.JS中的DOM 1.1.什么是DOM 1.2.获取DOM结点 (1)获取htm ...
最新文章
- Symfony 使用 hwi/oauth-bundle 实现第三方登录
- php示例代码使用mysql_fetch_assoc函数
- TensorFlow产品总监:机器学习进步让AI应用成可能
- 为什么局部内部类和匿名内部类只能访问 final 的局部变量?
- in 和 exist 区别
- HDU 1301 Jungle Roads(裸最小生成树)
- parted如何将磁盘所有空间格式化_CentOS下大于2T的硬盘格式化问题
- Linux下mysql设置密码
- mysql:修改root初始化密码
- arcgis将点的属性赋值给面
- 怎么把文件上传云服务器上,如何把文件上传到云服务器上
- CMake使用详解二(多文件编译)
- JavaScript ES5之Object.create函数详解
- gb2312编码在线转换_文件打开乱码?来了解一下文件编码
- 电子科技大学计算机学院图章,桂林电子科技大学印章管理暂行规定
- 实验七 Matlab GUI设计
- YOLOv2原文解读
- php model module,Yii2用Gii自动生成Module+Model+CRUD
- linux中pwd命令,pwd命令
- ROC-RK3328-CC 开发板开箱和上手指南
热门文章
- Word书写Latex之Aurora的安装总结
- [收藏]ORACLE函数搜罗
- 【天光学术】儿童文学论文:林良童诗的诗语的浅白简约及意境之美(节选)
- 家用计算机 阵列,家用PC组建RAID全攻略
- python调用按键精灵插件_开发中IDE的选择?如何在VsCode上配置CC++,Java,Python环境...
- GeForce 1080Ti显卡驱动+cuda8.0+cudnn6.0 外加TensorFlow-GPU
- tk6071iq怎么恢复出厂设置_TK6071IQ触摸屏怎么用U盘下载程序
- 深度学习 第三章 tensorflow手写数字识别
- 解除自己微信绑定的小程序公众号开发者
- idm如何下载种子文件和磁力链接 idm如何下载torrent