Constructeurs d'objets JavaScript
- Page précédente Accesseur d'objet JS
- Page suivante Prototype d'objet JS
Exemple
function Person(first, last, age, eye) { this.firstName = first; this.lastName = last; this.age = age; this.eyeColor = eye; }
C'est une bonne habitude de nommer les fonctions constructrices avec des lettres majuscules.
type d'objet (modèle) (classe)
L'exemple de la chapitre précédent est limité. Ils ne créent qu'un seul objet.
Parfois, nous devons créer de nombreux objets du même "modèle".
L'une des méthodes pour créer un type "objet" est d'utiliserfonction constructeur de l'objet。
Dans l'exemple ci-dessus,fonction Person() c'est la fonction constructeur de l'objet.
par new Le mot-clé appelant la fonction constructeur peut créer des objets du même type :
var myFather = new Person("Bill", "Gates", 62, "blue"); var myMother = new Person("Steve", "Jobs", 56, "green");
this mot-clé
mot-clé this
Les choses en JavaScript sont appelées
this
sa valeur, lorsqu'elle est utilisée dans un objet, est l'objet lui-même.
Dans la fonction constructeur,this
Il n'a pas de valeur. C'est un substitut pour un nouvel objet. Lorsque l'on crée un nouvel objet, la valeur de this deviendra cet objet.
Veuillez noter this
Ce n'est pas une variable. C'est un mot-clé. Vous ne pouvez pas changer la valeur de this.
Ajouter une propriété à un objet
Ajouter une nouvelle propriété à un objet existant est simple :
Exemple
myFather.nationality = "English";
La nouvelle propriété est ajoutée à myFather. Pas à myMother, ni à aucun autre objet person.
Ajouter une méthode à un objet
Ajouter une nouvelle méthode à un objet existant est simple :
Exemple
myFather.name = function () { return this.firstName + " " + this.lastName; };
La nouvelle méthode est ajoutée à myFather. Pas à myMother, ni à aucun autre objet person.
Ajouter une propriété au constructeur
Contrairement à l'ajout de nouvelles propriétés à un objet existant, vous ne pouvez pas ajouter de nouvelles propriétés au constructeur d'objet :
Exemple
Person.nationality = "English";
Pour ajouter une nouvelle propriété au constructeur, vous devez l'ajouter à la fonction constructeur :
Exemple
function Person(first, last, age, eyecolor) { this.firstName = first; this.lastName = last; this.age = age; this.eyeColor = eyecolor; this.nationality = "English"; }
De cette manière, les propriétés de l'objet peuvent avoir des valeurs par défaut.
Ajouter une méthode au constructeur
Votre fonction constructeur peut également définir des méthodes :
Exemple
function Person(first, last, age, eyecolor) { this.firstName = first; this.lastName = last; this.age = age; this.eyeColor = eyecolor; this.name = function() {return this.firstName + " " + this.lastName;}; }
Contrairement à l'ajout de nouvelles méthodes à un objet existant, vous ne pouvez pas ajouter de nouvelles méthodes au constructeur d'objet.
Il faut ajouter une méthode à un objet à l'intérieur de la fonction constructeur :
Exemple
function Person(firstName, lastName, age, eyeColor) { this.firstName = firstName; this.lastName = lastName; this.age = age; this.eyeColor = eyeColor; this.changeName = function (name) { this.lastName = name; }; }
La fonction changeName() assigne la valeur de name à l'attribut lastName de l'objet person.
Maintenant, vous pouvez essayer :
myMother.changeName("Jobs");
en utilisant myMother
remplacez par this,JavaScript peut savoir quel personnage il traite actuellement.
Constructeurs intégrés de JavaScript
JavaScript fournit des constructeurs pour les objets primitives :
Exemple
var x1 = new Object(); // Un nouveau objet Object var x2 = new String(); // Un nouveau objet String var x3 = new Number(); // Un nouveau objet Number var x4 = new Boolean(); // Un nouveau objet Boolean var x5 = new Array(); // Un nouveau objet Array var x6 = new RegExp(); // Un nouveau objet RegExp var x7 = new Function(); // Un nouveau objet Function var x8 = new Date(); // Un nouveau objet Date
Math()
Les objets ne font pas partie de cette liste. Math est un objet global.new
Les mots-clés ne peuvent pas être utilisés avec Math.
Savez-vous que ?
Comme vous pouvez le voir ci-dessus, JavaScript fournit des versions des types de données primitives (chaîne, nombre, boolean) sous forme d'objets. Mais il n'y a aucune raison de créer des objets complexes. Les valeurs primitives sont beaucoup plus rapides !
Utilisez le littéral d'objet {}
remplacez par new Object()
。
Utilisez le littéral de chaîne ""
remplacez par new String()
。
Utilisez le littéral numérique à la place Number()
。
Utilisez le littéral boolean à la place new Boolean()
。
Utilisez le littéral d'array []
remplacez par new Array()
。
Utilisez le littéral de motif à la place new RegExp()
。
Utilisez l'expression de fonction () {}
remplacez par new Function()
。
Exemple
var x1 = {}; // Nouveau objet var x2 = ""; // Nouvelle chaîne originale var x3 = 0; // Nouvelle valeur numérique originale var x4 = false; // Nouvelle valeur logique originale var x5 = []; // Nouvel objet tableau var x6 = /()/ // Nouvel objet expression régulière var x7 = function(){}; // Nouvel objet fonction
Objet chaîne
Généralement, les chaînes de caractères sont créées en tant que valeurs primitives : var firstName = "Bill"
Mais on peut aussi utiliser new
Créer un objet chaîne avec le mot-clé : var firstName = new String("Bill")
Veuillez Chaîne JSDans cette section, apprenez pourquoi il ne faut pas créer de chaînes de caractères en tant qu'objets.
Objet numérique
Généralement, les valeurs numériques sont créées en tant que valeurs primitives : var x = 456
Mais on peut aussi utiliser new
Créer un objet numérique avec le mot-clé : var x = new Number(456)
Veuillez Nombre JSDans cette section, apprenez pourquoi il ne faut pas créer de valeurs numériques en tant qu'objets.
Objet booléen
Généralement, les valeurs logiques sont créées en tant que valeurs primitives : var x = false
Mais on peut aussi utiliser new
Créer un objet logique avec le mot-clé : var x = new Boolean(false)
Veuillez Logique JSDans cette section, apprenez pourquoi il ne faut pas créer de valeurs logiques en tant qu'objets.
- Page précédente Accesseur d'objet JS
- Page suivante Prototype d'objet JS