Die Eigenschaften von Objekten in ES5 können in "Datenattribute" und "Accessor Attribute" unterteilt werden.
Datenattribute werden im Allgemeinen zum Speichern von Datenwerten verwendet. Die Accessor -Attribute entsprechen Set/GET -Operationen, und Datenwerte können nicht direkt gespeichert werden.
Datenattributmerkmale: Wert, beschreibbar, aufzählbar, konfigurierbar.
Erläuterung: Konfigurierbar: True/False, ob das Attribut über Delete gelöscht werden kann, ob die Eigenschaften des Attributs geändert werden können und ob das Attribut an das Attribut des Accessor -Attributs, Standard False, geändert werden kann.
Aufzählbar: TRUE/FALSE, ob es durch eine für in Schleife zurückgegeben werden kann, Standard falsch;
Beschreibbar: TRUE/FALSE, ob der Wert des Attributs geändert werden kann, der Standard ist falsch;
Wert: Undefiniert, setzen Sie den Wert der Eigenschaft, Standard undefiniert.
Accessor -Attribute: Setzen, Get, Aufzählbar, konfigurierbar.
Erläuterung: Konfigurierbar: True/False, ob das Attribut über Delete gelöscht werden kann, ob die Eigenschaften des Attributs geändert werden können und ob das Attribut an das Attribut des Accessor -Attributs, Standard False, geändert werden kann.
Aufzählbar: TRUE/FALSE, ob es durch eine für in Schleife zurückgegeben werden kann, Standard falsch;
SET: Funktion, Funktion, die beim Lesen von Eigenschaftswerten aufgerufen wird;
GET: Funktion, Funktion, die beim Ändern des Eigenschaftswerts aufgerufen wird.
Eigenschaften zu Objekten hinzufügen oder die Eigenschaften vorhandener Eigenschaften mithilfe des Objekts ändern.
Object.DefineProperty (Objekt, Eigentumsname, Deskriptor):
Parameter Erläuterung: Objekt: Ein Objekt, das Attribute hinzufügen oder ändern muss;
PropertyName: Der Name der Eigenschaft, String -Format;
Deskriptor: Beschreibung der Attribute, Einstellung der Eigenschaften von Datenattributen oder Zubehörattributen.
Beispielanalyse:
Dateneigenschaften:
var emp = {name: 'tom'}; Object.DefineProperty (EMP, 'Name', {beschreibbar: false}); emp.name = 'jery'; console.log (emp.name); // output tom, weil beschreibbar auf falseObject.DefineProperty (emp, 'aste', {konfigurierbar: false, schreibbar: true: value, value: 22}); 22emp.age = 25; console.log (emp.age); // Ausgabe 25, Setting Seting STRECTABLE IS TREDELETE Emp.age; console.log (emp.age); // Ausgabe 25, Konfigurierbar ist auf Falsch festgelegt. Diese Eigenschaft kann nicht gelöscht werdenAccessoreigenschaften:
var emp = {_ Name: 'Tom', _ Alter: 20}; Object.DefineProperty (emp, 'name', {get: function () {return this._name;}}); console.log (emp.name); // output tom, return the Value of _name durch die Get -Method -Name = -Name = 'Jery' ’’ ’’ ’’ ’’ ’’ ° '’’ ’’ ’’ ’’ ’. Methode, der Wert von _name kann nicht modifiziert werden. _age mit der GET -Methode löschen Emp.age; console.log (emp.age); // Ausgabe undefiniert, konfigurierbar ist wahr.Hinweis: Das Accessor -Attribut kann eine gute Rolle beim Schutz spielen. Wenn es nur die GET-Methode gibt, ist sie schreibgeschützt und kann nicht schreiben. Im Gegenteil, wenn es nur das Set gibt, kann es nur schreiben, aber nicht lesen.
Das obige ist die kurze Diskussion über JavaScript -Datenattribute und Accessor -Attribute, die der Editor Ihnen bringt. Ich hoffe, jeder wird Wulin.com mehr unterstützen ~