English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Dans les chapitres précédents, nous avons appris à créer des objets en JavaScript.
Les exemples des premiers chapitres sont limités. Ils ne créent qu'un seul objet.
Parfois, nous avons besoin d'un « modèle » pour créer de nombreux objets de même type (exemple).
La méthode de création de "modèle" est d'utiliser}}Constructeur d'objet.
UnConstructeur d'objetIl est facile de créer plusieurs objets (exemples) avec les mêmes propriétés et méthodes.
Dans l'exemple suivant, function User() est un constructeur d'objet :
function User(fname, lname, age, loc) { this.firstName = fname; this.lastName = lname; this.age = age; this.location = loc; }
Créer des objets du même type en appelant le constructeur avec la clé new :
var Seagull = new User("Seagull", "Anna", 22, "New Delhi"); var tarush = new User("Tarush", "Balodhi", 34, "Bihar");Vérifiez et voyez‹/›
Comme vous le voyez, nous pouvons rapidement construire un grand nombre d'objets utilisateurs différents en appelant le constructeur User avec différents paramètres. Cela est complètement similaire au modèle utilisé par JavaScript dans ses constructeurs intégrés (comme Array() et Date()).
JavaScript a un mot-clé spécial this, que vous pouvez utiliser dans les méthodes pour faire référence à l'objet courant.
Lorsque this est utilisé dans un objet, sa valeur est l'objet lui-même.
Dans le constructeur, this n'a pas de valeur. Il remplace le nouveau objet. Lors de la création d'un nouveau objet, la valeur de this deviendra l'objet lui-même.
Pour ajouter une nouvelle propriété à un objet, vous pouvez utiliser l'opérateur d'affectation (=) pour assigner une nouvelle valeur à une propriété.
Seagull.weapon = "Sword";Vérifiez et voyez‹/›
Attention :Cette propriété sera ajoutée à Seagull. Ne pas le faire (ne s'applique pas à aucun autre objet User).
Pour ajouter une nouvelle méthode à un objet, vous pouvez utiliser l'opérateur d'affectation (=) pour assigner une nouvelle fonction à une propriété.
Seagull.greet = function() { return "Hello World"; };Vérifiez et voyez‹/›
Attention :Cette méthode sera ajoutée à Seagull (ne pointe vers aucun autre objet User).
Nous ne pouvons pas ajouter de nouvelles propriétés au constructeur comme nous le faisons pour un objet existant :
User.weapon = "Sword";Vérifiez et voyez‹/›
Pour ajouter une nouvelle propriété au constructeur, vous devez laAjouter au constructeur :
function User(fname, lname, age, loc) { this.firstName = fname; this.lastName = lname; this.age = age; this.location = loc; this.weapon = "Sword"; }Vérifiez et voyez‹/›
Parfois, nous aimons ajouter de nouvelles propriétés à un constructeur plus tard, ce constructeur sera partagé entre tous les objets (exemples). La réponse estPrototype de l'objet.
Le constructeur peut également définir des méthodes.
NousNe pas commeComme ajouter une nouvelle méthode à un objet existant, ajoutez une nouvelle méthode au constructeur.
Ajouter une méthode à un objet doit être fait à l'intérieur du constructeur.
function User(fname, lname, age, loc) { this.firstName = fname; this.lastName = lname; this.age = age; this.location = loc; this.fullName = function() { return this.firstName + " " + this.lastName; }; }Vérifiez et voyez‹/›
Parfois, nous voulons ajouter de nouvelles méthodes à la fonction constructeur plus tard, qui seront partagées entre tous les objets (par exemple). La réponse estPrototype de l'objet.
JavaScript possède les constructeurs natifs suivants pour les objets :
let x1 = new String(); //Un nouveau objet String. let x2 = new Number(); //Un nouveau objet number. let x3 = new Boolean(); //Un nouveau objet boolean. let x4 = new Object(); //Un nouveau objet Object. let x5 = new Array(); //Un nouveau objet Array. let x6 = new RegExp(); //Un nouveau objet RegExp. let x7 = new Date(); //Un nouveau objet date. let x8 = new Function(); //Un nouvel objet fonction.Vérifiez et voyez‹/›
Comme vous pouvez le voir ci-dessus, JavaScript a des types de données primitives objets : String, Number et Boolean.
Nous n'avons pas de raison de créer des objets complexes. Car les valeurs primitives sont beaucoup plus rapides.
Toujours considérez les nombres, les chaînes ou les booléens comme des valeurs primitives. Ne pas les considérer comme des objets.
Déclarer ces types comme objets réduit la vitesse d'exécution et génère des résultats inattendus.
var str1 = "New Delhi"; var str2 = new String("New Delhi"); document.write(str1 === str2); // renvoie une erreur car str1et str2de différents typesVérifiez et voyez‹/›
Impossible de comparer les objets :
var str1 = new String("New Delhi"); var str2 = new String("New Delhi"); document.write(str1 == str2); // renvoie une erreur car str1et str2de différents types document.write(str1 === str2); // r renvoie une erreur car str1et str2de différents typesVérifiez et voyez‹/›
Vous pouvez aussi faire ainsi :
Utilisez {} à la place de new Object()
Utilisez "" à la place de new String()
Utilisez 0 à la place de new Number()
Utilisez false à la place de new Boolean()
Utilisez [] à la place de new Array()
Utilisez/();/à la place de new RegExp()
Utilisez function (){} à la place de new Function()
let x1 ={}; let x2 = ""; let x3 = 0; let x4 = false; let x5 = []; let x6 = /();/; let x7 = function(){};Vérifiez et voyez‹/›
Généralement, les chaînes JavaScript sont créées à partir de valeurs littérales : var city = "New Delhi";.
Mais, vous pouvez également utiliser la clause new pour définir une chaîne en tant qu'objet : var city = new String("New Delhi");.
Dans " Chaîne JS Dans le chapitre "Pourquoi ne pas créer de chaînes en tant qu'objets", vous pouvez comprendre pourquoi.
Généralement, les nombres JavaScript sont créés à partir de valeurs littérales : var num = 50;.
Mais, vous pouvez également utiliser la clause new pour définir un nombre en tant qu'objet : var num = new Number("50);.
Dans " Nombre JS Dans le chapitre "Pourquoi ne pas créer de nombres en tant qu'objets", vous pouvez comprendre pourquoi.
Généralement, les valeurs booléennes JavaScript sont créées à partir de valeurs littérales : var x = false;.
Mais, vous pouvez également utiliser la clause new pour définir une valeur booléenne en tant qu'objet : var x = new Boolean(false);.
Dans " Valeur booléenne JS Dans le chapitre "Pourquoi ne pas créer de booléens en tant qu'objets", vous pouvez comprendre pourquoi.