Object.assign( this , {data中同名变量}) 给data变量赋值
原理:this是一个对象,包含data中变量和方法等一切可以this.调用的属性
对象合并时,相同的键名后面对象会覆盖前对象
Object.freeze() 冻结一个对象
- 跟const常量一样,只不过,const声明简单类型的值不能修改,对象却是可以修改的,
所以,如果你想禁止一个对象的修改就可以用Object.freeze() - 浅冻结:对象的属性若是对象,是可以修改属性的属性的
- 深冻结
function deepFreeze(obj) {
// 获取定义在obj上的属性名
var propNames = Object.getOwnPropertyNames(obj);
// 在冻结自身之前冻结属性
propNames.forEach(function(name) {
var prop = obj[name];
// 如果prop是个对象,冻结它
if (typeof prop == 'object' && prop !== null)
deepFreeze(prop);
});
return Object.freeze(obj);
}