对象--JavaScript

深入理解对象-定义属性

数据属性特性

Configurable

表示是否通过delete删除属性从而重新定义属性,能否修改属性的特性,或者能否把属性修改为访问器属性(属性直接定义在对象中,默认为true)。 当为false时,不能重新定义不能使用delete删除

Enumerable

表示能否通过for-in循环返回属性。(属性直接定义在对象中,默认为true)

Writable

表示能否修改属性的值。(属性直接定义在对象中,默认为true)

Value

包含这个属性的数据值 name:jacky

要修改属性默认的特性,

必须使用ECMAScript5的

Object.defineProperty

语法:(属性所在的对象,属性的名字,一个描述符对象)方法

例如:

var obj = new Object();
obj.name = 'zhangsan';
obj.say = function () {};

修改name属性

Object.defineProperty(obj,'name',{
   configurable:true,//可删除
   enumerable:true,//可循环遍历
   writable:true,//可修改
   value:'terry'
})

当我们创建一个对象并且为对象设置一个属性的时候,该属性默认特性Configurable、Enumerable、Writable默认都为true,value为该属性的值

新增属性

Object.defineProperties(obj, {
    age: {
        value: 18,
        configurable: true
    }
})

对象序列化 

对象序列化是指将对象的状态转换为字符串,也可以反序列化,将字符串还原为对象函数

RegExp,Error对象,undefined值不能序列化和反序列化

JSON.stringify(obj) 将对象序列化为JSON字符串

,只能序列化对象可枚举的自有属性  

JSON.parse(jsonStr) 将字符串还原为对象函数  

// 将对象转换为JSON字符串
// {"name":"briup","age":12}
var obj = {
	name:"briup",
	age:12
};
console.log(obj);  //object类型打印的结果  {name:'briup',age:12}
// 将对象转换为JSON字符串
var json = JSON.stringify(obj);
console.log(json);//string类型的字符串
// 将JSON字符串转换为对象
var obj = JSON.parse(json);
console.log(obj);

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值