Setzer und Getter in JavaScript sind Methoden, die in den normalen Zeiten weniger ausgesetzt sind. Sie sind selbst keine Standardmethoden und werden nur in Nicht-IE-Browsern unterstützt (es kann möglicherweise andere Methoden geben, die vom IE-Kernel durchgeführt werden können? Ich kenne die Lösung vorerst nicht), aber das Verwenden kann viele Dinge tun, wie z.
1. Beschränkungen des Datenzugriffs:
A.Value ist ein Getter -Methodenaufruf der Wertvariablen. Wenn eine Ausnahme in die Implementierung der Getter -Methode geworfen wird, kann der Zugriff auf die Wertvariable blockiert werden.
2. Hören Sie sich DOM -Variablen an:
window.name ist ein sehr nützliches DOM -Attribut über die Domänen hinweg (Einzelheiten siehe Baidu). Wenn Sie die Setter -Implementierung von window.name überschreiben, können Sie die asynchrone Speicherkommunikation über Seiten hinweg erkennen.
3. Verwenden Sie Ihre Fantasie und können viele Dinge tun
Alle Folgen werden übertragen:
Schauen wir uns zunächst einen kurzen Blick darauf an, was Getter und Setter sind und warum sie nützlich sind. Lassen Sie uns dann sehen, welche Plattformen jetzt Gettets und Setter unterstützen.
Getters und Setter
Getters und Setter ermöglichen es Ihnen, die Daten eines Objekts schnell zu erhalten oder einzurichten. Im Allgemeinen hat ein Objekt zwei Methoden, die verwendet werden, um einen bestimmten Wert zu erhalten und festzulegen, z. B.:
{getValue: function () {return this._Value;}, setValue: function (val) {this._value = val;}}Ein offensichtlicher Vorteil des Schreibens von JavaScript auf diese Weise ist, dass Sie es verwenden können, um Attribute auszublenden, auf die Sie nicht direkt von der Außenwelt zugreifen möchten. Der endgültige Code sieht so aus (speichern Sie den Wert des neu erstellten eingereichten Objekts mit einer Schließung):
Funktionsfeld (val) {var value = val; this.getValue = function () {return value;}; this.setValue = function (val) {value = val;};};So können wir es so verwenden:
var field = neues field ("test"); field.value // => undefinedField.setValue ("test2") field.getValue () // => "test2"Lassen Sie uns das "Hidden Value Attribut" im obigen Beispiel simulieren, und unser Code sieht so aus:
Funktionsfeld (val) {var value = val; this .__ DefineGetter __ ("value", function () {return value;}); this .__ DefinesSetter __ ("Wert", Funktion (val) {val = val;});};};};Sie schreiben jedoch nicht gerne auf diese Weise und neigen dazu, Getter und Setter im Prototyp des Objekts zu definieren (es spielt keine Rolle, wo die private Variable geschrieben ist), wir können eine andere Syntax verwenden.
Funktionsfeld (val) {this.Value = val;} field.prototype = {gett value () {return this._Value;}, value (val) {this._value = val;}};Diese Syntax sieht unglaublich aus, aber nachdem es eine Weile verwendet wird, ist es einfach, sie zu akzeptieren.
Als nächstes kommt ein weiteres Beispiel, das es der Außenwelt ermöglicht, eine Reihe von Benutzernamen zu erhalten, aber die ursprünglichen, versteckten Benutzerobjekte nicht erhalten.
Funktionsseite (Benutzer) {this .__ DefineGetter __ ("Benutzer", function () {// js 1.6 array map () return user.map (Funktion (Benutzer) {return user.name;});};};};Denken Sie an die folgenden Punkte:
In einem Objekt kann jede Variable nur einen Getter oder Setter haben. (Der Wert kann also einen Getter und einen Setter haben, aber Wert hat nie zwei Getter)
Die einzige Möglichkeit, einen Getter oder Setter zu löschen, ist: Objekt löschen [Name]. Löschen kann einige gängige Eigenschaften, Getter und Setter entfernen.
Wenn Sie __DefineGetter__ oder __definesSetter__ verwenden, überschreibt er den zuvor definierten Getter oder Setter, der zuvor definiert wurde, oder sogar eine Eigenschaft (Eigenschaft).
Plattform
Unterstützte Browser sind:
Firefox
Safari 3+
Opera 9.5
Das obige ist die vollständige Beschreibung der in JavaScript eingeführten Setter- und Getter -Methoden, die der Editor Ihnen vorgestellt hat. Ich hoffe, es wird Ihnen hilfreich sein. Wenn Sie mehr wissen möchten, achten Sie bitte wulin.com.