Dans JavaScript, vous pouvez lire et écrire la propriété de l'objet via l'opérateur de points "." ou l'opérateur du support "[]":
La copie de code est la suivante:
var o = {x: 1, y: 2};
console.log (ox); // 1
console.log (o ["y"]); // 2
oy = 7;
console.log (o ["y"]); // 7
Il convient de noter que si l'opérateur de support est utilisé, le type de valeur dans l'opérateur doit être une chaîne ou une expression qui peut être convertie en chaîne:
La copie de code est la suivante:
console.log (o [y]); // ReferenceError: y n'est pas défini
var v = "y";
console.log (o [v]); // 7
Contrairement à la langue Java, les propriétés des objets dans JavaScript peuvent être ajoutées ou supprimées dynamiquement. Lors de l'attribution d'une propriété, si la propriété n'existe pas, JavaScript ajoutera dynamiquement cette propriété à l'objet:
La copie de code est la suivante:
oz = 99;
console.log (o); // objet {x = 1, y = 7, z = 99}
Lecture de la propriété dans le prototype de chaîne d'héritage
Tous les objets de JavaScript ont un prototype d'objet prototype et hériter de la propriété de l'objet prototype; Par conséquent, les propriétés d'un objet en js sont divisées en deux catégories:
1. La propriété appartenant à l'objet lui-même ("propriété propre").
2. Propriété héritée de l'objet Prototype.
Lors de la lecture de la propriété d'un objet, les règles suivies sont les suivantes:
1. Recherchez la propriété qui doit être lue à partir de la collection de propriétés de l'objet ("propriété propre"); S'il peut être recherché, il lira directement la propriété et renverra sa valeur.
2. Si la propriété ne peut pas être recherchée à partir de la collection de propriétés de l'objet ("propriété propre"), continuez à rechercher à partir de la chaîne prototype du prototype de l'objet jusqu'à ce que la propriété soit recherchée et que sa valeur soit renvoyée.
3. Si la propriété ne peut pas être recherchée dans la collection de propriétés de l'objet ("propriété propre") et que la propriété ne peut pas être recherchée dans tous les objets prototypes de l'objet, alors un non-défini est renvoyé.
Écrire une propriété dans la chaîne de succession prototype
Lors de l'écriture sur la propriété d'un objet JavaScript, les règles suivies sont les suivantes:
1. Si l'objet lui-même dispose de la propriété et que la propriété est écrite, écrivez la nouvelle valeur sur la propriété. Si la propriété est en lecture seule, une erreur est signalée.
2. Si l'objet lui-même n'a pas la propriété et n'existe pas dans tous ses objets prototypes, ajoutez cette propriété à l'objet.
3. Si l'objet lui-même n'a pas la propriété, mais que la propriété existe dans son objet Prototype et est écrite, alors JS créera cette propriété dans l'objet; c'est-à-dire que l'objet remplace la propriété dans son objet prototype. Cette valeur de propriété dans l'objet Prototype reste inchangée.
4. Si l'objet lui-même n'a pas la propriété, mais que la propriété existe dans son objet prototype et est en lecture seule, une erreur sera signalée.
5. Si l'objet lui-même n'a pas la propriété, mais que la méthode du secteur de la propriété existe dans son objet Prototype, alors JS appellera la méthode du secteur dans l'objet Prototype. Il convient de noter que lors de l'exécution de la méthode du secteur, si une affectation variable est impliquée, l'opération d'attribution agira sur l'objet lui-même et l'objet prototype ne sera pas modifié. Pour ce comportement, il peut être compris comme: l'objet hérite de la fonction de setter à partir du prototype et l'exécute.
D'après les règles ci-dessus, nous pouvons constater que si l'opération d'attribution à la propriété est réussie, l'objet lui-même sera toujours modifié à la fin et que son objet prototype prototype ne sera pas modifié.