constructor
Posted sske531549304
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了constructor相关的知识,希望对你有一定的参考价值。
防篡改: 禁止修改对象的属性结构
防扩展: 禁止向对象中添加新属性
Object.preventExtensions(obj)
密封: 即防扩展,又禁止删除旧属性
Object.seal(obj)
其实是将所有属性的configurable设置为false
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script>
"use strict";
function Emp(id,name,salary,age) {
//this->新对象
//id只读,禁止删除
//name禁止删除
//salary禁止删除,禁止遍历
//age:18-65之间
this.id=id;
this.name=name;
this.salary=salary;
var _age;
Object.defineProperties(this,{
id:{writable:false},
salary:{enumerable:false},
age:{
get(){return _age;},
set(val) {
if (val>=18&&val<=65)
_age=val;
else
throw new RangeError("年龄必须介于18-65之间");
},
enumerable:true
}
});
this.age=age;
//防扩展
//设置当前新对象禁止扩展新属性
// Object.preventExtensions(this);
//密封
Object.seal(this);
}
var eric=new Emp(1001,"Eric",10000,25);
// eric.is++;
// delete eric.id;
// eric.age=-2;
console.dir(eric);
</script>
</body>
</html>
以上是关于constructor的主要内容,如果未能解决你的问题,请参考以下文章
代码中 方法 处提示:This method has a constructor name