Constructeurs d'objets JavaScript

Exemple

function Person(first, last, age, eye) {
    this.firstName = first;
    this.lastName = last;
    this.age = age;
    this.eyeColor = eye;
}

Essayer vous-même

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");

Essayer vous-même

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";

Essayer vous-même

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;
};

Essayer vous-même

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";

Essayer vous-même

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";
}

Essayer vous-même

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;};
}

Essayer vous-même

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");

Essayer vous-même

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

Essayer vous-même

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

Essayer vous-même

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.