• const声明的对象只是其在堆区的地址值不能改变,其属性值一样可以改变,如果我们需要声明一个深度不可变的对象,即其属性值也全都不可变就需要递归使用Object.freeze()方法对对象进行冻结。如下方法可以实现对一个对象进行深度冻结:
function freezeObj (obj) {if (Object.isFrozen(obj)) return objObject.keys(obj).forEach(key => {typeof obj[key] === 'object' && (freezeObj(obj[key]))})return Object.freeze(obj)
}let obj = {uname: 'zhaoji',score: [1,2,3,4]
}let free = freezeObj(obj)console.log(free);
free.score[3] = 100
free.uname = 'cyj'
console.log(free);

js深度冻结一个对象相关推荐

  1. js判断一个对象是否是空对象

    一.写在前面 js如何判断一个对象是否是空对象,本文给出三个方法. 二.采用for-in-进行遍历 最常见的思路就是使用for....in...遍历属性,为真则为非空对象,为假则为空对象. <s ...

  2. js判断一个对象是否为空

    判断一个对象是否为空的三种方法 1.通过JSON自带的.stringify方法来判断 2.最常见的思路,for...in...遍历属性,为真则为"非空数组":否则为"空数 ...

  3. js中一个对象当做参数传递时候?

    高程中讲到:'ECMAScript 中所有函数的参数都是按值传递'. 这就像把值从一个变量复制到另一个变量一样. 那引用类型的值也是像基本类型一样? 直接看栗子一:var person = {name ...

  4. 利用js传一个对象到后台

    利用JS对象把值传到后台 记得以前刚写asp.net 从前台往后台传值 都是var data=A,B,C,D,E; 循环添加用逗号隔开 后台还要被测试测出只输入,就错了 哈哈..后来用✈◆类似的符号隔 ...

  5. map.js的编写(js编写一个对象的方式)

    // 定义map function Map() {this.container = {}; } // 将key-value放入map中 Map.prototype.put = function(key ...

  6. js判断一个对象是不是函数对象

    使用typeof的值判断,如果为"function"则说明是函数 eg: if(typeof setName === "function"){console.l ...

  7. js 把一个对象赋值给另一个对象

    var ObjA = {'name':'张三','age':20,'sex':'男' } var ObjB = {'name':'李四','age':25 } for(let i in ObjB){t ...

  8. 响应式ui_在应用程序远程通知ui中响应本机

    响应式ui A quick recipe to creating an interactive remote notification banner UI in a React Native app, ...

  9. JS如何判断一个对象是否为空、是否有某个属性

    一.JS判断一个对象是否为空 方法一: let obj1 = {} let obj2 = {a:1} function empty(obj){for (let key in obj){return f ...

最新文章

  1. 自查自纠 | 线性回归,你真的掌握了嘛?
  2. [模板]欧几里得算法/扩展欧几里得
  3. 研诺首款D类音频放大器延长便携应用中的电池寿命
  4. C#中修改文件或文件夹的权限,为指定用户、用户组添加完全控制权限
  5. Android逆向笔记-大部分内购游戏破解思路
  6. webpack 无法加载文件 C:\Users\User\AppData\Roaming\npm\webpack.ps1,因为在此系统上禁止运行脚本。
  7. 安装系统显示sql服务器未安装,win7系统安装SQLServer2005提示“SQL Server服务无法启动”的解决方法...
  8. java反编译 luyten_Java——反编译工具 JD-GUI procyon-decompiler luyten crf (转)
  9. 使用javascript实现对于chineseocr的API调用
  10. shopex操作记录
  11. 三次bezier曲线 MATLAB,Matlab 画二次及三次Bezier曲线,8控制点的B样条曲线
  12. 操作系统OS-采用分段式存储管理不会产生内部碎片
  13. 雪花漂浮php,h5canvas实现雪花飘落的特效代码
  14. 如何用matlab对两个行向量作图_matlab 绘图与图形处理(二)
  15. matlab 替换字符 数字,使用正则表达式替换文本
  16. 《视觉slam十四讲》初学小白笔记(10)
  17. Python对Excel文件多表对多表之间的匹配(两种不同表头)——之json版
  18. 小学计算机ps课题计划,小学生学习习惯养成课题总结
  19. 分群思维(五)特殊的分群思维-同期群分析
  20. #小程序# 如何解决video视频在ios里出现黑屏?

热门文章

  1. linux下判断文件是否存在,文件夹是否存在,是否有访问权限的方法
  2. Linux /中创建目录文件,复制,移动,该改名
  3. 精品软件介绍 Wireless Network Watcher 中文版 - 防蹭网监视软件
  4. 阿里云解析是什么?有什么用?
  5. 中文搜索引擎技术揭密:网络蜘蛛(二)
  6. 低版本Android手机浏览器下载apk文件打开提示“无法打开文件”解决方法
  7. js 数组移动位置算法
  8. Vim配置Python环境
  9. 【建议收藏】回收站数据恢复如何操作?3个方案帮你恢复删除的文件
  10. 拍婚纱照的流程,从选择——下单——拍摄