您的位置:首页 > Web前端 > JavaScript

js对象理解----属性类型,读取属性特性

2019-07-13 16:52 309 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/Glichi/article/details/95765395

属性类型

数据属性

  1. Configurable:能否通过delete删除属性从而重新定义属性;能否修改,或者能否把属性修改为访问器属性
  2. Enumberable:能否通过for-in循环返回属性
  3. Writable:能否修改属性的值
  4. Value:包含这个属性的数据

直接在对象上定义属性,默认值都为true

修改默认属性的方法:
Object.defineProperty()

在调用Object.defineProperty(),如果不指定,Configurable,Enumberable,Writable默认值都为false

var person={};
Object.defineProperty(
person,"name",{
writable:false,
value"Nack"
}
);

alert(person.name); //Nack
person.name="Grey";
alert(person.name); //Nack

访问器属性

  1. Configurable:能否通过delete删除属性从而重新定义属性;能否修改,或者能否把属性修改为访问器属性
  2. Enumberable:能否通过for-in循环返回属性
  3. Get:读取属性是调用的函数,默认值:undefined
  4. Set:写入,默认值:undefined
var book={
_year:2004,
edition:1
};

Object.defineProperty(book,"year",{
get:function(){
return this._year;
},
set:function(newValue){
if(newValue>2004){
this._year=newValue;
this.edition+=newValue-2004;
}
}
});

book.year=2005;
alert(book.edition); //2

定义多个属性:Object.defineProperties()

读取属性特性

Object.getOwnPropertyDescription()

接受两个参数:属性所在的对象,要读取其描述符的属性名称

var descriptor=Object.getOwnPropertyDescriptor(book,"_year");

alert(descriptor.value);
alert(descriptor.configurable);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: