Я пишу программу javascript, чтобы понять, как настраиваемый флаг, установленный в false, влияет на свойство.Программа выглядит так:
let user={
name:"heman"
};
Object.defineProperty(user, "name",{
configurable:false
});
try{
Object.defineProperty(user, "name",{
configurable:true
})
}//Throws error
catch(err){console.log(err)}
try{
Object.defineProperty(user, "name",{
enumerable:false
});
} //Throws Error
catch(err){console.log(err)}
try{
Object.defineProperty(user, "name", {
writable:false
});
} //Does'nt Throws Error. But Why?
catch(err){console.log(err)}
В этой программе я впервые создал объект с именем user, user содержит одно свойство, т. е. name: "heman".Я установил настраиваемый флаг свойства name в false (настраиваемый: false).Затем я снова попытался изменить настраиваемый флаг на true. Это вызвало ошибку.После того, как я попытался изменить перечисляемый флаг на false, который противоположен его значению по умолчанию, он снова выдал ошибку.На этот раз, когда я попытался изменить флаг записи на false.Флаг изменился без каких-либо ошибок.Даже после установки для настраиваемого флага значения false, почему свойство все еще настраивается?Почему изменяемый флаг изменился без каких-либо ошибок.Я хочу знать, что происходит В следующих двух случаях:
1) для настраиваемого флага установлено значение true
2) для настраиваемого флага установлено значение false