En utilisant la fonction constructeur intégrée Object (), nous pouvons créer des objets vides génériques à la volée. En fait, si vous vous souvenez du début du chapitre 1, c'est exactement ce que nous avons fait en créant l'objet cody. Permet de recréer l'objet cody.
Échantillon: sample69.html
Ici, nous ne faisons qu’utiliser le Objet()
fonction constructeur pour créer un objet générique appelé cody. Vous pouvez penser à la Objet()
constructeur en tant que emporte-pièce pour la création d'objets vides sans propriétés ni méthodes prédéfinies (à l'exception de celles héritées de la chaîne de prototypes).
Si ce n'est pas évident, le Objet()
constructeur est un objet lui-même. C'est-à-dire que la fonction constructeur est basée sur un objet créé à partir du Une fonction
constructeur. Cela peut être déroutant. Rappelez-vous que comme le Tableau
constructeur, le Objet
constructeur crache simplement des objets vides. Et oui, vous pouvez créer tous les objets vides que vous aimez. Cependant, créer un objet vide comme cody est très différent de la création de votre propre fonction constructeur avec des propriétés prédéfinies. Assurez-vous de bien comprendre que cody n’est qu’un objet vide basé sur la Objet()
constructeur. Pour exploiter réellement la puissance de JavaScript, vous devez apprendre non seulement à créer des conteneurs d'objets vides à partir de Objet()
, mais aussi comment construire votre propre "classe" d'objets (La personne()
) comme le Objet()
fonction constructeur elle-même.
Objet()
Paramètresle Objet()
La fonction constructeur prend un paramètre optionnel. Ce paramètre est la valeur que vous souhaitez créer. Si vous ne fournissez aucun paramètre, alors un nul
ou indéfini
la valeur sera assumée.
Échantillon: sample70.html
Si une valeur à part nul
ou indéfini
est passé au Objet
constructeur, la valeur transmise sera créée en tant qu’objet. Donc, théoriquement, nous pouvons utiliser le Objet()
constructeur pour créer l’un des autres objets natifs ayant un constructeur. Dans l'exemple suivant, je ne fais que.
Échantillon: sample71.html
Objet()
Propriétés et méthodesle Objet()
object a les propriétés suivantes (sans compter les propriétés et méthodes héritées):
Propriétés (Object.prototype;
):
prototype
Objet()
Propriétés et méthodes de l'instanceObjet()
Les instances d'objet ont les propriétés et méthodes suivantes (n'inclut pas les propriétés et méthodes héritées):
Propriétés d'instance (var myObject = ;
myObject.constructor;
):
constructeur
Méthodes d'instance (var myObject = ;
myObject.toString ();
):
hasOwnProperty ()
isPrototypeOf ()
propertyIsEnumerable ()
toLocaleString ()
toString ()
valeur de()
La chaîne du prototype se termine par Object.prototype
, et donc toutes les propriétés et méthodes de Objet()
sont hérités par tous les objets JavaScript.
Objet()
Objets utilisant des "objets littéraux"Créer un "objet littéral" implique d'instancier un objet avec ou sans propriétés à l'aide d'accolades (var cody = ;
). Rappelez-vous au début du chapitre 1 lorsque nous avons créé l'objet cody unique, puis que nous lui avons donné les propriétés à l'aide de la notation par points. Faisons cela à nouveau.
Échantillon: sample72.html
Notez dans le code que la création du Cody
objet et ses propriétés ont pris cinq déclarations. En utilisant la notation littérale des objets, nous pouvons exprimer la même chose Cody
objet dans une déclaration.
Échantillon: sample73.html
L'utilisation de la notation littérale nous permet de créer des objets, y compris des propriétés définies, avec moins de code et d'encapsuler visuellement les données associées. Remarquez l'utilisation de :
et ,
opérateurs dans une seule déclaration. C'est en fait la syntaxe recommandée pour créer des objets en JavaScript en raison de son caractère concis et de sa lisibilité..
Vous devez savoir que les noms de propriété peuvent également être spécifiés sous forme de chaînes:
Échantillon: sample74.html
Il n'est pas nécessaire de spécifier les propriétés sous forme de chaînes, à moins que le nom de la propriété:
classe
).Prudent! La dernière propriété d'un objet ne doit pas être précédée d'une virgule. Cela provoquera une erreur dans certains environnements JavaScript.
Object.prototype
le Objet()
La fonction constructeur en JavaScript est spéciale, car sa prototype
la propriété est le dernier arrêt de la chaîne de prototypes.
Dans l'exemple suivant, j'augmente la Object.prototype
avec un foo
propriété, puis créer une chaîne et tenter d'accéder à la foo
propriété comme s'il s'agissait d'une propriété de l'occurrence de chaîne. Depuis le myString
l'instance n'a pas de foo
propriété, la chaîne de prototypes entre en jeu et la valeur est recherchée à String.prototype
. Ce n'est pas là, donc le prochain endroit à regarder est Object.prototype
, Quel est l'emplacement final? JavaScript recherchera une valeur d'objet. le foo
la valeur est trouvée parce que je l'ai ajoutée, elle renvoie donc la valeur de foo
.
Échantillon: sample75.html
Prudent! Quelque chose ajouté à Object.prototype
apparaîtra dans un pour dans
boucle et la chaîne de prototypes. Pour cette raison, il a été dit que changer Object.prototype
est interdit.