<!doctype html>
<html>
<head>
<title>标题</title>
<meta charset="utf-8">
<script>
"use strict";
function Emp(id,name,age){
this.id=id; this.name=name;//public
Object.defineProperty(this,"id",{
writable:false,
configurable:false
});
var _age; //private
//添加访问器属性age,保护_age
Object.defineProperty(this,"age",{
get:function(){return _age},
set:function(val){
if(val<18||val>65){
throw new Error(
"age must between 18 and 65");
}
_age=val;
},
enumerable:true,
configurable:true
});
this.age=age;
//1.防扩展
//Object.preventExtensions(this);
//2.密封
Object.seal(this);
}
var eric=new Emp(1001,"eric",25);
delete eric.age;
console.log(Object.isExtensible(eric));
eric.Age=15;
console.log(eric.Age);
</script>
</head>
<body>
</body>
</html>