Das Buch, PROFESSIONAL JavaScript ® für Web-Entwickler Third Edition, sagt:Neudefinition Attribut über Objekteigenschaft verursacht einen Fehler
Zusätzlich einmal eine Eigenschaft hat defi niert als nicht konfigurierbare, es nicht konfigurierbar wieder werden kann. Jeder Versuch, Object.defineProperty() aufzurufen und jedes andere Attribut als das schreibbare zu ändern, verursacht einen Fehler.
'use strict';
var obj = {};
Object.defineProperty(obj, 'key', {
value:'static'
});
Object.defineProperty(obj, 'key', {
writable: true,
});
schreibe ich über einen Code-Schnipsel, aber es wirft einen Fehler. Das Buch sagt, dass ich die beschreibbaren Attribute neu definieren kann. Warum verursacht es einen Fehler?
Nun, um fair zu sein, gibt es keine Ausnahme, denn wenn 'writable' bereits' true', ist es nicht mit dem zweiten Aufruf geändert. Es ist ein Noop. –
Ah, ja, das stimmt. Im Gegensatz zum ursprünglichen Beispiel in der Frage macht es aber immer noch Sinn, da es zeigt, dass das Problem beim ersten Aufruf entsteht. Aber du hast recht. –