Heim >Web-Frontend >js-Tutorial >Eine kurze Analyse der beiden Eigenschaften von Objekten in ECMAScript

Eine kurze Analyse der beiden Eigenschaften von Objekten in ECMAScript

不言
不言Original
2018-07-17 14:52:421088Durchsuche

ECMAScript-Objekte haben zwei Attribute, nämlich Datenattribute und Accessor-Attribute. Als nächstes analysieren wir die beiden Attribute.

1. Datenattribut
Das Datenattribut enthält den Ort eines Datenwerts. Dieser Ort kann Werte lesen und schreiben. Datenattribute verfügen über 4 Eigenschaften, die ihr Verhalten beschreiben.
[ [ Konfigurierbar ] ] Gibt an, ob das Attribut durch Löschen des Attributs durch Löschen neu definiert werden kann, ob die Eigenschaften des Attributs geändert werden können oder ob das Attribut als Zugriffsattribut geändert werden kann. Der Standardwert ist true
[ [ Enumerable] ] Gibt an, ob das Attribut über eine For-In-Schleife zurückgegeben werden kann. Der Standardwert ist true
[ [ Writable ] ] und gibt an, ob der Wert des Attributs geändert werden kann. Der Standardwert ist true
[ [ Value ] ] Enthält den Attributwert dieses Attributs. Lesen Sie beim Lesen von Attributen von diesem Speicherort aus und speichern Sie beim Schreiben von Attributen den neuen Wert an diesem Speicherort. Der Standardwert ist undefiniert
z. B.:

var p = {};
Object.defineProperty(p, "name", {
    writable: false,
    value: 'nihao' 
})

2. Accessor-Eigenschaften
Accessor-Eigenschaften enthalten keine Datenwerte. Sie enthalten ein Paar Getter- und Setter-Funktionen (diese beiden Funktionen sind jedoch nicht erforderlich). Beim Lesen der Accessor-Eigenschaft wird die Getter-Funktion aufgerufen, die für die Rückgabe eines gültigen Werts verantwortlich ist. Beim Schreiben des Accessor-Attributs wird die Setter-Funktion aufgerufen und der neue Wert übergeben. Diese Funktion ist dafür verantwortlich, zu entscheiden, wie die Daten verarbeitet werden
[ [ Konfigurierbar ] ] Gibt an, ob das Attribut durch Löschen neu definiert werden kann Attribut durch Löschen, und ob die Eigenschaften des Attributs geändert werden können oder ob die Eigenschaft geändert werden kann, um eine Zugriffseigenschaft zu sein. Der Standardwert ist true
[ [ Enumerable] ] Gibt an, ob das Attribut über eine For-In-Schleife zurückgegeben werden kann. Der Standardwert ist true
[ [ Get ] ] Die Funktion, die beim Lesen von Eigenschaften aufgerufen wird, der Standardwert ist undefiniert
[ [ Set ] ] Die Funktion, die beim Schreiben von Eigenschaften aufgerufen wird, der Standardwert ist undefiniert
zB:

var p = {get: 0};
Object.defineProperty(p, "name", {
    get: function (){
        console.log('get');
        return this.get;
    },
    set: function (newVal) {
        console.log('set');
        this.get = newVal;
    }
})

3. Merkmale des Lesens von Attributen
Object.getOwnPropertyDescriptor (Objekt, in dem sich das Attribut befindet, Attributname);
Der Rückgabewert ist ein Objekt, das auf die vier Attribute konfigurierbar, aufzählbar, get und zugreift gesetzt.
Wenn es sich um ein numerisches Attribut handelt, umfassen die zurückgegebenen Objektattribute konfigurierbar, aufzählbar, beschreibbar und Wert:
Die Funktion Object.defineProperties() kann mehrere Attribute definieren
z.

var p = {get: 0};
Object.defineProperties(p, {"name", {
    get: function (){
        console.log('get');
        return this.get;
    },
    set: function (newVal) {
        console.log('set');
        this.get = newVal;
    }
}, "age": {
       writable: true,
       value: 11
   }
})
Verwandte Empfehlungen:


Detaillierte Erläuterung der Attributdeskriptoren in ECMAScript 5_Grundkenntnisse

Das obige ist der detaillierte Inhalt vonEine kurze Analyse der beiden Eigenschaften von Objekten in ECMAScript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn