犀牛——第6章对象 6.7属性的特性
来源:互联网 发布:mdf ldf 还原数据库 编辑:程序博客网 时间:2024/05/17 22:00
6.7 属性的特性
除了包含名字和值之外,属性还包含了一些标识它们可写、可枚举和可配置的特性。
数据属性的4个特性分别是它的值(value)、可写性(writable)、可枚举性(enumerable)和可配置性(configurable)。
存取器属性的4个特性是读取(get)、写入(set)、可枚举性和可配置性。
调用Object.getOwnPropertyDescriptor()可以获得某个对象特定属性的属性描述符:
//返回{value:1,writable:true,enumerable:true,configurable:true}
Object.getOwnPropertyDescriptor({x:1},"x");
要想设置属性的特性,或者想让新建的属性具有某种特性,则需要调用Object.definePeoperty(),传入要修改的对象、要创建或修改的属性的名称以及属性描述符对象:
var o = {};//创建一个空对象
//添加一个不可枚举的数据属性x,并赋值为1
Object.defineProperty(o,"x",{
value:1,
writable:true,
enumerable:false,
configurable:true});
如果要同时修改或创建多个属性,则需要使用Object.defineProperties().
*可写性控制着对值特性的修改。
*可配置性控制着对其他特性(包括属性是否可以删除)的修改
6.8 对象的三个属性
6.8.1 原型对象
对象的原型属性是用来继承属性的。检测一个对象是否是另一个对象的原型,请使用isPrototypeOf()方法。
6.8.2 类属性
对象的类属性是一个字符串,用以表示对象的类型信息。默认的toString()方法返回了如下这种格式的字符串:
[object class]
6.8.3 可扩展性
对象的可拓展性用以表示是否可以给对象添加新属性。
Object.esExtensible()判断对象是否是可扩展的。
Object.preventExtensions()将对象转为不可扩展的。
Object.seal()和Object.preventExtensions()封闭对象。Object.isSealed()来检测对象是否封闭。
6.9 序列化对象
对象序列化是指将对象的状态转换为字符串,也可将字符串还原为对象。
JSON.stringify()和JSON.parse()用来序列化和还原JavaScript对象。
JSON的全称是“JavaScript Object Notation”——JavaScript对象表示法,它的语法和JavaScript对象与数组直接量的语法非常相近:
o={x:1,y:{z:[false,null,""]}}; //定义一个测试对象
s=JSON.stringify(o); //s是'{"x":1,"y":{"z":[false,null,""]}}'
p=JSON.parse(s); //p是o的深拷贝
JSON的语法是JavaScript语法的子集,它并不能表示JavaScript里的所有值。
6.10 对象方法
6.10.1 toString()方法
6.10.2 toLocaleString() 方法
6.10.3 toJSON()方法
6.10.4 valueOf()方法
- 犀牛——第6章对象 6.7属性的特性
- 犀牛——第6章对象 6.3删除属性
- 犀牛——第6章对象 6.5 枚举属性
- 犀牛——第6章对象6.2属性的查询和设置
- 犀牛——第6章对象 6.1 创建对象
- 犀牛——第14章 Window对象
- 犀牛——第5章语句
- 犀牛——第8章函数 8.7函数属性、方法和构造函数
- 【笔记】 《js权威指南》- 第6章 对象 - 6.7 属性的特性 (ECMAScript5)
- 犀牛——第3章 类型、值和变量 3.5 全局对象
- 犀牛——第3章 类型、值和变量 3.6 包装对象
- 犀牛——第3章 类型、值和变量 3.7不可变的原始值和可变的对象引用
- 犀牛——第2章词法结构
- 犀牛——第4章表达式和运算符
- 犀牛——第7章数组 7.1 创建数组
- 犀牛——第7章 7.3稀疏数组
- 犀牛——第7章数组 7.8 数组方法
- 犀牛——第7章数组 7.9数组方法
- 《MATLAB在语音信号分析和合成中的应用》随书附带程序下载 程序打不开
- Mathematica
- datatables如何获取当前page的数据的条数以及datables的一些有用的事件
- 并不是只要加了锁就是安全(互斥)的
- android基础之Activity几个面试题
- 犀牛——第6章对象 6.7属性的特性
- Android 中Junit 测试框架(单元测试)
- "早餐佳"步伐太快扯到蛋了?
- 纯js评星插件
- Java之命令模式(Command Pattern)
- 构建亿级前端读服务
- MapReduce 的进一步了解(一)
- 北大ACM2503——Babelfish~~字典树的应用
- Android获取屏幕宽度与长度的三个方法