Évidemment, c'est un sujet qui n'est pas pertinent pour IE (sauf pour Advanced IE). Malgré cela, les étudiants intéressés devraient se renseigner sur la mise en œuvre de Getters et Setters dans la norme ECMAScript5. Dans un objet, le fonctionnement le plus couramment utilisé des propriétés ou des méthodes est lu (référence) et écriture. Par exemple, O.get, qui est une opération de lecture, et O.Set = 1 est une opération d'écriture. En fait, dans la mise en œuvre des derniers navigateurs traditionnels, sauf IE, la valeur clé de tout objet peut être remplacée par des méthodes Getter et Setter, qui est appelée "Attribut Accessor".
Il ne fait aucun doute que Getter est responsable de l'interrogation de la valeur, il ne prend aucun paramètre et que le secteur est responsable de la définition de la valeur clé. La valeur est transmise sous forme de paramètres. Dans son corps de fonction, tout retour n'est pas valide. Contrairement aux propriétés ordinaires, lorsque seul obtenez ou définit est déclaré, la propriété mémoire ne peut pas avoir lu et écrire. Lorsqu'il n'a qu'une méthode Getter, il n'est lu que. De même, lorsqu'il n'a qu'une méthode de setter, alors ce que vous lisez n'est toujours pas défini. Comment déclarer les attributs de mémoire d'objets? Le moyen le plus rapide est d'utiliser la syntaxe des littéraux d'objets à écrire. Veuillez consulter le code suivant:
La copie de code est la suivante:
var oo = {
Nom: 'Xianxin',
Get Sex () {
retour «homme»;
}
};
// De toute évidence, cela n'est pas autorisé, car Xianxin ne veut pas que le monde extérieur change le fait qu'il est un homme, donc seule la fonction en lecture seule est définie pour le sexe.
oo.sex = 'femme';
console.log (oo.sex); // Le résultat est toujours un homme
Fait intéressant, cela subvertit notre compréhension précédente, c'est-à-dire que le mot clé de la fonction n'est pas utilisé lors de la définition de la méthode. En fait, obtenez ou définissez ici, vous pouvez le comprendre comme une fonction dans deux états différents: le côté inclusif (écriture), le côté sûr (lecture), lorsqu'un ensemble est démembré sous une forme différente, cela signifie que nous n'aurons peut-être plus besoin de suivre la tradition en termes d'expression, donc nous n'utilisons pas de coulons pour séparer les clés et les valeurs. Ensuite, continuez avec l'exemple ci-dessus. Comment allez-vous à la fois lire et écrire en fonction des propriétés de la mémoire? Peut-être que le paragraphe suivant vous donnera la réponse:
La copie de code est la suivante:
var oo = {
Nom: 'Xianxin',
Get Sex () {
if (this.sexx) {
Renvoie ce.SEXX;
}autre{
retour «homme»;
}
}, définir le sexe (val) {
this.sexx = val;
}
};
// Oh, il est tellement tolérant que même les gens changent de sexe, il l'accepte.
oo.sex = 'femme';
console.log (oo.sex); // Résultat femme
Peut-être que vous penserez que ce n'est pas nécessaire, car nous pouvons complètement ignorer Get et définir et permettre directement à la méthode de sexe d'avoir deux autorisations. Mais la raison pour laquelle nous avons retiré Get and Set séparément est de comprendre plus clairement l'opération de valeur clé d'Ecmascript5 sur l'objet JavaScript, une interprétation plus rigoureuse. Bien sûr, en Chine polluée par IE, les nouvelles technologies grand public semblent toujours déplacées. Dans le développement réel de projets, vous ne pouvez jamais utiliser Get and Set, mais qui peut garantir que vous ne le ferez pas à l'avenir ...