1、保护对象的方法
1.1:阻止扩展: 不能新增属性 Object.preventExtensions(obj)
1.2:不能增删:seal密封的意思 Object.seal(obj)
1.3:冻结freeze:不能增删改 Object.freeze(obj)
//有时候我们需要把整个对象都保护起来
var yanan = {
name:"丫丫",
age:19,
phone:"13411111111"
};
//级别1:阻止扩展 不能新增属性
Object.preventExtensions(yanan);
// yanan.boyfriend = "彭于晏"; 报错
yanan.age=23;
delete yanan.age;
console.log(yanan);
//级别2:不能增删 seal密封的意思
Object.seal(yanan);
// yanan.boyfriend = "吴彦祖"; 报错
// delete yanan.name; 报错
//级别3:冻结freeze,不能增删改
Object.freeze(yanan);
// yanan.boyfriend = "阿坤"; 报错
// delete yanan.phone; 报错
// yanan.name = "楠楠"; 报错,不可修改
2、创建对象&指定原型
setPrototypeOf( ):可以为已存在的一个对象,设置原型
此方法执行要分两步:
①.先有一个对象
②.再为这个对象指定原型
Object.create(参数1,参数2 ):是简化之前的操作,参数1:新对象的原型,参数2:新对象的各种属性设置
①.创建新对象
②.指定原型
③.为新对象的每个属性增加自定义的配置
//制作1个原型
var mayun = {
money:9999999,
houses:111111,
};
//参数1:新对象的原型,参数2:新对象的各种属性设置
var xiaoLiang = Object.create(mayun,{
name:{
value:"小亮",
//通过方法新增对象,所有配置项默认值都是false
writable:true,
enumerable:true,
},
age:{
value:2,
writable:true,
enumerable:true
}
});