理解对象
Posted 飞奔吧小土豆
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了理解对象相关的知识,希望对你有一定的参考价值。
1 什么是对象?
无需属性的集合,其属性可以包含基本值、对象或者函数。
可以把对象想象为散列表:无非就是一组 名-值对,其值是数据或函数。
1.1 属性类型
ECMAScript中有两种属性:数据属性和访问器属性
数据属性:
- [[ Configurable ]]:能否通过delete删除属性重新定义属性,能否修改属性特性,或者把属性修改为访问器属性。默认为true
- [[ Ebumberle ]]:能否通过for-in循环返回属性,默认为true
- [[ Writable ]]:能否改写属性值,默认为true
- [[ Value ]]:包含这个属性的数据值,默认为tundefined
要修改属性默认特性,要用 Object,defineProperty() 方法。这个方法接受三个参数:属性所在的对象、属性的名字、一个描述符(descriptor)对象。
var person ={}; Object.defineProterty(person,"name",{ configurable:false, value:"Nick" }); alert(person.name) //Nick person.name="Tim"; alert(preson.name); //Nick
非严格模式下赋值将被忽略,严格模式下赋值操作将会抛出错误。
一旦把configurable设置为false后,就再不能把它变回可配置了,即再设置为true后,会抛错误
在调用Object,defineProperty() 方法时,如果不指定,Configurable 、 Ebumberle、Writable 会默认为false.
以上是关于理解对象的主要内容,如果未能解决你的问题,请参考以下文章