1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| function constTize(obj){ if(Object.isFrozen(obj)){ return obj } Object.keys(obj).forEach(key=>{ typeof obj[key]==="object"&&(obj[key]=constTize(obj)) }) return Object.freeze(obj) } const obj={ a:{ b:2, arr:[1,2,3] }, c:123 } const demoObj=constTize(obj) try { demoObj.a.arr=[] demoObj.c=456 } catch (error) { console.log(error.message) }
|