Les propriétés des objets dans ES5 peuvent être divisées en «attributs de données» et «attributs d'accessoires».
Les attributs de données sont généralement utilisés pour stocker les valeurs de données. Les attributs d'accessoires correspondent aux opérations SET / GET et les valeurs de données ne peuvent pas être stockées directement.
Caractéristiques d'attribut de données: valeur, écrivative, énumérable, configurable.
Explication: Configurable: True / False, si l'attribut peut être supprimé via Supprimer, si les caractéristiques de l'attribut peuvent être modifiées, et si l'attribut peut être modifié à l'attribut accessor, par défaut FAUX;
Énumérable: vrai / false, s'il peut être renvoyé via un pour en boucle, par défaut false;
Writable: true / false, si la valeur de l'attribut peut être modifiée, la valeur par défaut est fausse;
Valeur: Undefined, définissez la valeur de la propriété, par défaut non définie.
Attributs d'accessoires: définissez, obtenir, énumérable, configurable.
Explication: Configurable: True / False, si l'attribut peut être supprimé via Supprimer, si les caractéristiques de l'attribut peuvent être modifiées, et si l'attribut peut être modifié à l'attribut accessor, par défaut FAUX;
Énumérable: vrai / false, s'il peut être renvoyé via un pour en boucle, par défaut false;
set: fonction, fonction appelée lors de la lecture des valeurs de propriété;
get: fonction, fonction appelée lors de la modification de la valeur de la propriété.
Ajoutez des propriétés aux objets ou modifiez les propriétés des propriétés existantes à l'aide de la méthode object.defineProperty () ou object.defineProperties ();
Object.defineProperty (objet, propriétéName, descripteur):
Explication du paramètre: Objet: un objet qui doit ajouter ou modifier les attributs;
PropertyName: le nom de la propriété, format de chaîne;
Descripteur: Description des attributs, définition des propriétés des attributs de données ou des attributs d'accessoires.
Exemple d'analyse:
Propriétés des données:
var emp = {name: 'tom'}; Object.defineproperty (emp, 'name', {withing: false}); emp.name = 'jery'; console.log (emp.name); // output tom, car en écriture a été définie sur falseObject.defineproperty (emp, 'age', {configurable: false, scénarisable: true, valeur: 22}); console.log (emp.age); 22emp.age = 25; console.log (emp.age); // output 25, le réglage écrit est Trededele Emp.age; console.log (emp.age); // la sortie 25, configurable est défini sur false, cette propriété ne peut pas être suppriméePropriétés accessoires:
var emp = {_ name: 'tom', _ Âge: 20}; object.defineproperty (emp, 'name', {get: function () {return this._name;}}); console.log (emp.name); // output Tom, renvoie la valeur de _name par la méthode get Emp.name Tom = 'jery'; Console.Log (emp.name); Méthode, la valeur de _name ne peut pas être modifiée objet.defineproperty (emp, 'age', {configurable: true: get: function () {return this._age;} set: function (age) {this._age = age;}}); emp.age = 25; console.log (emp.age) // sortie 25, Emp.age = 25 est à attribuer 25 à 25 _age Utilisation de la méthode get Delete Emp.age; console.log (emp.age); // Sortie indéfinie, configurable est vrai, vous pouvez utiliser la méthode de suppression pour supprimer l'attribut emp.ageRemarque: L'attribut accessor peut jouer un bon rôle dans le protéger. Lorsqu'il n'y a que la méthode GET, il est en lecture seule et ne peut pas écrire; Au contraire, lorsqu'il n'y a que l'ensemble, il ne peut qu'écrire mais non lire.
Ce qui précède est la brève discussion des attributs de données JavaScript et des attributs d'accessoires que l'éditeur vous apporte. J'espère que tout le monde soutiendra Wulin.com plus ~