Im пытается запечатать свойство объекта.Как предотвратить изменение свойств объекта в javascript
Мой вопрос: здесь я задал Object.seal (personObject), этот конкретный объект запечатан и не позволяет настраивать или делать какие-либо расширения в этом объекте, но поскольку я не упоминал о personObject_2, он позволяет расширить или настроить
Как я могу сделать это прототип .Я имею в виду, как и любой класс типа лица должны иметь/относительно этого seal.Can мы достигаем такого поведения
"use strict";
var personModule=(function (module) {
var person=function (fname,lname) {
Object.defineProperty(this,'firstName',{
get:function() {
return fname;
}
,set:function (newValue) {
fname=newValue;
},
configurable:true
});
Object.defineProperty(this,'lastName',{
get:function() {
return lname;
}
,set:function (newValue) {
lname=newValue;
},
configurable:true
});
Object.defineProperty(this,'fullName',{
get:function() {
return fname+lname;
},
configurable:true
});
}
module.person=person;
return module;
})(personModule || {});
var personObject=new personModule.person("Raju","Rani");
console.log(personObject.fullName);
Object.seal(personObject);
//delete personObject.firstName;-->It throws error here
var personObject2=new personModule.person("Shiva","Kumar");
delete personObject2.firstName;
console.log(personObject2.firstName);
Спасибо
Поместите 'Object.seal (это) 'в конструкторе? – 4castle
Я пробовал даже с прототипом ... похоже, что он работает – Srisa
А также поставил Object.freeze (это)? – Anson