码迷,mamicode.com
首页 > Web开发 > 详细

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

时间:2015-04-18 10:05:48      阅读:137      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!