javascript高级程序设计学习---读取对象属性的特性

方法:Object.getOwnPropertyDescriptor()
支持的浏览器:IE9+,Firefox4+,safari 5+,Opera12+,chrome
参数:1.要读取的对象,2.要读取的属性
返回结果:返回对应属性的所有特性
1.对象的数据属性,返回的是value,configurable,enumerable,writable
2.对象的访问器属性,返回的是configurable,enumerable,get,set

示例:
var wife = {
name:"hyn",
_age:0,
birthdayYear:1988
}

Object.defineProperty(wife,"year",{
get:function(){
return this._age;
},
set:function(year){
if(year > this.birthdayYear)
{
this._age = year - this.birthdayYear;
}
}
});

wife.year = 2014;
alert(wife._age);
var descript = Object.getOwnPropertyDescriptor(wife,"year");
//弹出四次提示框,分别显示configurable,enumerable,get,set
for(index in descript)
{
alert(index);
}
var descriptName = Object.getOwnPropertyDescriptor(wife,"name");
//弹出四次弹出框,分别显示value,configurable,enumerable,writablele
for(index in descriptName)
{
alert(index);
}

alert("=============");
//year是wife的访问器属性,所以没有value特性
alert(descript.value);
//year不是通过对象定义的,所以configurable默认为false
alert(descript.configurable);
//弹出框显示year的get特性的函数
alert(descript.get);
//弹出框显示year的set特性的函数
alert(descript.set);
//year不同通过对象定义的,所以enumerable默认为false
alert(descript.enumerable);
//year是wife的访问器属性,所有没有writable特性
alert(descript.writable);

评论 ( 0 )
最新评论
暂无评论

赶紧努力消灭 0 回复