创建属性、属性标签、对象序列化
熟悉标签
writable //是否可以改写
enumerable //是否可以遍历,枚举
configurable //是否可以暂时被修改;是否可以通过delete删除
创建属性
一、创建单个属性
var person = {}; Object.defineProperty(person,'name',{ congigurable:false, writable:false, enumerable:true, value:'detanx' });
二、创建多个属性
var person = {}; Object.defineProperty(person,{ title:{value:'ss',congigurable:false}, name:{value:'de',writable:false}, num:{value:500,enumerable:true} });
对象的方法
一、Object.isExtensible(obj)//是否可以扩展
Object.preventExtensible(obj)//阻止扩展
Object.seal(obj)//isExtensible基础上设置configurable:false;
Object.isSeal(obj)//判断对象是否seal
Object.freeze(obj)//所有属性标签设为false;
Object.isFrozen(obj)//判断是否冻结
对象序列化
var obj = {x:1,y:true}; JSON.Stringify(obj)// "{'x':1,'y':true}" JSON.parse();//解析json对象
自定义序列化
var obj = {x:1,y:2,o:{ o1:1, o2:2, toJSON:function(){ return this.o1+this.o2;}}}; JSON.Stringify(obj)// "{'x':1,'y':2,'o':3}"