將對象凍結,使用Object.freeze
方法
const foo = Object.freeze({}); // 常規模式時,下面一行不起作用; // 嚴格模式時,該行會報錯 foo.prop = 123;
var t = { a:{ t:2 } } //凍結t對象下屬性a Object.freeze(t) t.a.t = 3 //不能凍結屬性a下的值obj中的對象 console.log(t.a.t) //3
除了將對象本身凍結,對象的屬性也應該凍結。下面是一個將對象徹底凍結的函數。
var constantize = (obj) => { Object.freeze(obj); Object.keys(obj).forEach( (key, i) => { if ( typeof obj[key] === 'object' ) { constantize( obj[key] ); } }); };
引用:http://es6.ruanyifeng.com/#docs/let