Les setteurs et les getters en JavaScript sont des méthodes moins exposées à des temps normaux. Ce ne sont pas eux-mêmes des méthodes standard et ne sont pris en charge que dans les navigateurs non IE (il peut y avoir d'autres méthodes qui peuvent être faites par le noyau IE? Je ne connais pas la solution pour le moment), mais les utiliser peut faire beaucoup de choses, telles que:
1. Restrictions sur l'accès aux données:
A.Value est un appel de méthode Getter à la variable de valeur. Si une exception est lancée dans l'implémentation de la méthode Getter, l'accès à la variable de valeur peut être bloqué.
2. Écoutez les variables DOM:
Window.name est un attribut DOM très utile sur les domaines (connu pour ses détails, voir Baidu pour plus de détails). Si vous remplacez la mise en œuvre du secteur de Window.name, vous pouvez réaliser la communication de mémoire asynchrone entre les pages.
3. Utilisez votre imagination et peut faire beaucoup de choses
Tous les éléments suivants sont transférés:
Tout d'abord, jetons un coup d'œil à ce que sont les getters et les setters et pourquoi ils sont utiles. Ensuite, voyons quelles plates-formes prennent désormais en charge Gettets et Setters.
Getters et Setters
Getters et Setters vous permettent d'obtenir ou de configurer rapidement les données d'un objet. D'une manière générale, un objet a deux méthodes, qui sont utilisées pour obtenir et définir une certaine valeur, comme:
{getValue: function () {return this._value;}, setValue: function (val) {this._value = val;}}L'un des avantages évidents de l'écriture de JavaScript de cette manière est que vous pouvez l'utiliser pour masquer les attributs que vous ne souhaitez pas accéder directement par le monde extérieur. Le code final ressemble à ceci (enregistrer la valeur de l'objet déposé nouvellement créé avec une fermeture):
champ de fonction (val) {var valeur = val; this.getValue = function () {return value;}; this.setValue = function (val) {value = val;};}Nous pouvons donc l'utiliser comme ceci:
var field = nouveau champ ("test"); champ.value // => undefinedField.SetValue ("test2") field.getValue () // => "test2"Simulons "l'attribut de valeur cachée" dans l'exemple ci-dessus, et notre code ressemble à ceci:
champ de fonction (val) {var valeur = val; this .__ Definegetter __ ("value", function () {return value;}); this .__ DefineSetter __ ("value", function (val) {value = val;});}Cependant, vous n'aimez pas écrire de cette façon et avez tendance à définir les getters et les setters dans le prototype de l'objet (peu importe où la variable privée est écrite), nous pouvons utiliser une autre syntaxe.
champ de fonction (val) {this.value = val;} champ.prototype = {get value () {return this._value;}, set value (val) {this._value = val;}};Cette syntaxe a l'air incroyable, mais après l'avoir utilisée pendant un certain temps, il est facile de l'accepter.
Ensuite, un autre exemple, qui permet au monde extérieur d'obtenir un tableau de noms d'utilisateur, mais ne peut pas obtenir les objets utilisateur d'origine et cachés.
site de fonction (utilisateurs) {this .__ Definegetter __ ("Users", function () {// js 1.6 array map () return users.map (function (user) {return user.name;});};}N'oubliez pas les points suivants:
Au sein d'un objet, chaque variable ne peut avoir qu'un seul Getter ou un setter. (Donc, la valeur peut avoir un Getter et un Setter, mais la valeur n'a jamais deux Getters)
La seule façon de supprimer un Getter ou Setter est: Supprimer l'objet [Nom]. Delete peut supprimer certaines propriétés, getters et setters communs.
Si vous utilisez __definegetter__ ou __defineSetter__, il remplace le Getter ou le secteur du même nom défini précédemment, ou même une propriété (propriété).
plate-forme
Les navigateurs pris en charge sont:
Incendier
Safari 3+
Opéra 9.5
Ce qui précède est la description complète des méthodes Setter et Getter introduites dans JavaScript que l'éditeur vous a présenté. J'espère que cela vous sera utile. Si vous voulez en savoir plus, veuillez faire attention à wulin.com.