首页 > Web开发 > 详细

JS Object.getOwnPropertyDescriptor()和Object.defineProperty()

时间:2015-04-18 10:03:22      阅读:304      评论:0      收藏:0      [点我收藏+]

ECMAScript 5 对对象属性进行了重新定义。除了原有的 property:value外,还增加了一些用于 标识该属性是否可写,可枚举,可配置的特性。为此引入了两个新方法:Object.getOwnPropertyDescriptor()和Object.defineProperty()。

<script>
var person ={ name:"Hai" }; //定义一个新对象
var personName = Object.getOwnPropertyDescriptor(person,"name"); //获取name属性身上的特性
console.log(personName);  //输出为{value: "Hai", writable: true, enumerable: true, configurable: true}
var personToString = Object.getOwnPropertyDescriptor(person,"toString"); //注意这里的Own,它的意思是只能获取对象本身自有的属性的特性
console.log(personToString); //因为toString()是Object的方法,是继承来的,所以返回undefined
Object.defineProperty(person,"name",{writable:false}); //修改name属性的可写特性为false,则不可以对name重新赋值
personName = Object.getOwnPropertyDescriptor(person,"name"); //再次获取name属性的特性
console.log(personName); //{value: "Hai", writable: false, enumerable: true, configurable: true}
person.name = "dingding"; //强行修改name
console.log(person.name); //这里仍然输出 “Hai”
</script>

 

JS Object.getOwnPropertyDescriptor()和Object.defineProperty()

原文:http://www.cnblogs.com/princeding/p/4436618.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!