ECMA-262 définit un objet comme: "Une collection d'attributs non ordonnés dont les attributs peuvent contenir des valeurs, des objets ou des fonctions de base."
La façon la plus simple de comprendre un objet est de créer une instance d'un objet, puis de lui ajouter des propriétés et des méthodes
La copie de code est la suivante:
var personne = nouveau objet ();
personne.name = "xulei";
personne.age = "23";
personne.job = "ingénieur frontal";
personne.sayName = function () {
alert (this.name);
}
Vous pouvez également écrire ceci
La copie de code est la suivante:
var personne = {
Nom: "Xulei",
Âge: 23 ans,
Emploi: "Projet front-end",
SayName: function () {
alerte (this.name)
}
}
1. Type d'attribut: attributs de données et accéder à leurs attributs
1. Attributs de données, avec 4 caractéristiques qui décrivent leur comportement
[Configurable]: indique si l'attribut peut être supprimé pour redéfinir l'attribut, si les caractéristiques de l'attribut peuvent être modifiées, ou si l'attribut peut être modifié à l'attribut accessoire, la valeur par défaut est vraie
[Énumérable]: indique si l'attribut peut être renvoyé via pour-in, la valeur par défaut est vraie
[Writable]: indique si l'attribut peut être modifié, la valeur par défaut est vraie
[Valeur]: contient la valeur de données de cette propriété. La valeur par défaut n'est pas définie
La copie de code est la suivante:
var personne = {
Nom: "Xulei"
}
Un objet de personne est créé ici, et la valeur de valeur est "xulei"
Pour modifier les propriétés par défaut d'une propriété, objet d'Ecmascript5.defineProperty (l'objet où se trouve la propriété, le nom de la propriété, l'objet descripteur) doit être utilisé)
L'objet descripteur doit être configurable, énuable, écrivable, valeur
La copie de code est la suivante:
var peron = {}
Object.defineproperty (Peron, "nom", {
Writable: False, // La propriété ne peut pas être modifiée
Valeur: "Xu Lei-Xulei"
});
alert (Peron.name); // xulei-xulei
Peron.name = "Xu Lei";
alert (Peron.name); // xulei-xulei
L'opération ci-dessus sera ignorée en mode non stricte, et une exception sera lancée en mode strict.
Une fois la propriété définie comme non configurable, elle ne peut pas être transformée en configurable.
Dans la plupart des cas, il n'est pas nécessaire d'utiliser ces fonctionnalités avancées fournies par la méthode object.defineproperty (). Mais il est très utile pour comprendre JavaScript.
Il est conseillé aux lecteurs de ne pas utiliser cette méthode sur IE8.
2. Accédez à ses propriétés, il y a 4 caractéristiques
[Configurable]: indique si l'attribut peut être supprimé pour redéfinir l'attribut, si les caractéristiques de l'attribut peuvent être modifiées, ou si l'attribut peut être modifié à l'attribut accessoire, la valeur par défaut est vraie
[Énumérable]: indique si l'attribut peut être renvoyé via pour-in, la valeur par défaut est vraie
[Obtenir]: fonctions appelées lors de la lecture
[Set]: fonction appelée lors de l'écriture d'attributs