Heim  >  Artikel  >  Web-Frontend  >  Objektzugriffseigenschaften in ECMAScript5: Einführung in Getter- und Setter_Javascript-Fähigkeiten

Objektzugriffseigenschaften in ECMAScript5: Einführung in Getter- und Setter_Javascript-Fähigkeiten

WBOY
WBOYOriginal
2016-05-16 16:28:161789Durchsuche

Natürlich ist dies ein Thema, das nichts mit IE zu tun hat (außer fortgeschrittenem IE). Dennoch sollten interessierte Studenten zusammenkommen, um etwas über die Implementierung von Gettern und Settern im ECMAScript5-Standard zu lernen. In einem Objekt sind die am häufigsten verwendeten Methoden zum Betreiben der Eigenschaften oder Methoden Lesen (Referenz) und Schreiben. Beispielsweise ist o.get eine Leseoperation, während o.set = 1 eine Schreiboperation ist. Tatsächlich kann bei der Implementierung der neuesten Mainstream-Browser außer IE der Schlüsselwert eines beliebigen Objekts durch Getter- und Setter-Methoden ersetzt werden, was als „Accessor-Attribut“ bezeichnet wird.

Es besteht kein Zweifel, dass der Getter für die Abfrage des Werts verantwortlich ist. Er übernimmt keine Parameter, während der Setter für das Festlegen des Schlüsselwerts verantwortlich ist. Der Wert wird in Form von Parametern übergeben. Alle Rücksendungen sind ungültig. Anders als bei gewöhnlichen Attributen kann ein Speicherattribut nicht sowohl lesen als auch schreiben. Wenn es nur eine Getter-Methode hat, ist es nur schreibgeschützt Nur schreibgeschützt. Wenn es nur eine Getter-Methode gibt, ist es nur eine schreibgeschützte Methode, dann ist das, was Sie lesen, immer undefiniert. Wie deklariere ich Objektspeichereigenschaften? Der schnellste Weg besteht darin, die Syntax von Objektliteralen zum Schreiben zu verwenden. Bitte sehen Sie sich den folgenden Code an:

Code kopieren Der Code lautet wie folgt:

var oo = {
Name: 'Xianxin',
Holen Sie sich Sex(){
         return 'man';
}
};
//Offensichtlich ist dies nicht erlaubt, da Xianxin nicht möchte, dass die Außenwelt die Tatsache ändert, dass er ein Mann ist, also stellt er nur die schreibgeschützte Funktion für Sex ein
oo.sex = 'Frau';
console.log(oo.sex); //Das Ergebnis ist immer noch man

Das Interessante ist, dass dies unser bisheriges Verständnis untergräbt, d. h. das Funktionsschlüsselwort wird bei der Definition der Methode nicht verwendet. Tatsächlich kann get oder set hier als Funktion in zwei verschiedenen Zuständen verstanden werden: der inklusiven Seite (Schreiben) und der sicheren Seite (Lesen). Wenn ein Ganzes in verschiedene Formen zerlegt wird, bedeutet dies, dass wir möglicherweise nicht folgen müssen Tradition in der Darstellung, daher verwenden wir keine Doppelpunkte, um Schlüssel und Werte zu trennen. Fahren Sie also mit dem obigen Beispiel fort. Wie können Sie anhand von Gedächtnisattributen sowohl lesen als auch schreiben? Vielleicht gibt Ihnen der folgende Absatz die Antwort:

Code kopieren Der Code lautet wie folgt:

var oo = {
Name: 'Xianxin',
Holen Sie sich Sex(){
If(this.sexx){
                return this.sexx;
         }sonst{
                return 'man'; }
}, setze sex(val){
This.sexx = val;
}
};
//Oh, er ist so tolerant, dass er es auch dann akzeptieren wird, wenn Menschen sein Geschlecht ändern
oo.sex = 'Frau';
console.log(oo.sex); //Ergebnis Frau

Vielleicht denken Sie, dass dies unnötig ist, da wir Get und Set vollständig ignorieren und der Sex-Methode direkt zwei Berechtigungen zuweisen können. Aber der Grund, warum wir get und set trennen, besteht darin, die strengere Interpretation von JavaScript-Objektschlüsselwertoperationen durch ECMAScript5 besser zu verstehen. Natürlich scheinen in China, das durch IE verschmutzt ist, neue Mainstream-Technologien immer fehl am Platz zu sein. In der tatsächlichen Projektentwicklung werden Sie möglicherweise nie get und set verwenden, aber wer kann garantieren, dass dies in Zukunft nicht der Fall sein wird ...

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