分享一个彻底冻结对象的函数——来自阮一峰老师的《ECMAScript 6 入门》
2018-01-11 11:57
519 查看
var constantize = (obj) => { Object.freeze(obj); Object.keys(obj).forEach( (key, i) => { if ( typeof obj[key] === 'object' ) { constantize( obj[key] ); } }); };
冻结对象的用处:
冻结对象是指那些不能添加新的属性,不能修改已有属性的值,不能删除已有属性,以及不能修改已有属性的可枚举性、可配置性、可写性的对象。
也就是说,这个对象永远是不可变的。
相关文章推荐
- Python: 为对象动态添加函数,且函数定义来自一个str
- ECMAScript 6 入门笔记(四)函数,对象
- Object.seal 函数 freeze()方法冻结一个对象
- ECMAScript 函数--对象应用
- C++中用函数返回值初始类对象时的一个问题
- 分享:实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定
- js打印对象 很有用的一个函数
- 在原生JS的DOM对象和Jquery对象的一个异常分享
- [Unity3D入门]分享一个自制的入门级游戏项目"坦克狙击手"
- 彻底理解Promise对象——用es5语法实现一个自己的Promise(上篇)
- JavaScript 申明函数的三种方法 每个函数就是一个对象(一)
- JavaScript 申明函数的三种方法 每个函数就是一个对象(一)
- 分享一个超好用的php header下载函数
- 作为一个c++而非c程序员,该弃函数指针投函数对象了
- 注册并发布一个xmlrpc远程对象(函数、类对象、客户端使用调用(对象.方法)格式)
- 【叶子函数分享四十】将一个正整数分解为m个2的n次方的和
- 分享一个PHP下载远程图片的函数
- 函数功能:传入一个数组,返回数组中第二大数。已知数组中的对象都是数字构成的字符串,且任意两元素不相等。 如传入:@[@"1",@"2",@"3",@"4"],返回@"3"
- 如果某一个对象没有提供创建函数,或创建函数无法达到期望的效果,如果创建新的这个类型的对象?