// 实现一个js类型,包含public属性和private属性
function Emp(id,ename,salary,age){
this.id=id;
this.ename=ename;
this.salary=salary;
Object.defineProperties(this,{
id:{writable:false},
salary:{enumerable:false},
_age:{
writable:true,
enumerable:false
},
age:{
get:function(){return this._age},
set:function(val){
if(val<18 || val>60){
throw new Error("年龄错误")
}
this._age=val;
},
enumerable:true
}
});
this.age=age;
Object.seal(this);//密封
}