property

ES5四大特性

value: 实际存储属性值,
writable: true/false, //是否可修改
enumerable: true/false,//是否可for in遍历
//依然可用.访问到
configurable: true/false,
//1. 是否可修改前两个特性
//2. 是否可删除当前属性
//一旦改为false,不可逆!



<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script>
"use strict";//启用严格模式

var eric = {id: 1001, ename: "Eric", salary: 10000};
var attrs =//获得eric对象的id属性的四大特性
Object.getOwnPropertyDescriptor(eric, "id");
console.dir(attrs);
//修改eric对象的id属性为只读
Object.defineProperty(eric, "id", {
writable: false,//设置只读
configurable: false//禁止修改其他特性,不可逆
});
delete eric.id;//报错:不许删除id属性
// Object.defineProperty(eric,"id",{
// writable:true,
// configurable:true
// });//报错:不允许重定义id属性
// eric.id++;//报错:不允许对只读属性id赋值
console.dir(eric);
for (var key in eric) {
console.log(key + ":" + eric[key]);
}
</script>
</body>
</html>
posted @ 2018-07-25 13:31  BugLess000  阅读(162)  评论(0编辑  收藏  举报