我想防止编辑对象的特定键值。表示应该只初始化一次。 假设有一个构造函数Student(fname,lname,id)。
function Student(fname,lname,id){
this.fname = fname;
this.lanme= lname;
this.id= id;
}
var st1 = new Student ('surya','pratap',1)
我只想防止对st1.fname和lname的ID进行修改。
答案 0 :(得分:4)
有两种方法可以实现,到目前为止,最简单的方法是:
function Student(fname,lname,id){
this.fname = fname;
this.lanme= lname;
this.id=id;
Object.defineProperty(this, "id", {
writable: false,
value: id,
configurable: false
});
}
答案 1 :(得分:0)
在es6中,您可以使用Symbol
s来做到这一点:
const
ID = Symbol(),
NAME = Symbol()
;
export default class Student {
constructor(id, name) {
this[ID] = id;
this[NAME] = name;
}
get id () { return this[ID]; }
get name () { return this[NAME]; }
}