Table des matières
Déterminer le type d'instance" >Déterminer le type d'instance
Constructeur personnalisé " >Constructeur personnalisé
Méthode Object.defineProperty " >Méthode Object.defineProperty
La représentation littérale d'objet est le constructeur préféré " >La représentation littérale d'objet est le constructeur préféré
L'utilisation du nouveau mot-clé est essentielle" >L'utilisation du nouveau mot-clé est essentielle
Un constructeur avec un champ d'application plus élevé" >Un constructeur avec un champ d'application plus élevé
Conclusion" >Conclusion
Maison interface Web js tutoriel En savoir plus sur les constructeurs en JavaScript

En savoir plus sur les constructeurs en JavaScript

Nov 03, 2020 pm 05:51 PM
javascript

En savoir plus sur les constructeurs en JavaScript

Avoir une bonne compréhension des constructeurs est la clé pour maîtriser le langage JavaScript. Nous savons tous que JavaScript n’est pas comme les autres langages. Il n’a pas de mot-clé class, mais il a un constructeur très similaire à function. Dans cet article, apprenons en détail comment les constructeurs JavaScript construisent des objets.

Les constructeurs sont très similaires aux fonctions ordinaires, mais nous les utilisons via le nouveau mot-clé. Il existe deux principaux types de constructeurs, les constructeurs natifs (Array, Object), qui peuvent être générés automatiquement dans l'environnement d'exécution, et les constructeurs personnalisés, dans lesquels vous pouvez définir vos propres méthodes et propriétés.

L'utilisation de constructeurs est très efficace lorsque vous souhaitez créer de nombreux objets similaires (avec les mêmes propriétés et méthodes). La plupart des programmeurs suivent la convention consistant à utiliser une lettre majuscule pour distinguer les constructeurs des fonctions ordinaires. Jetez un œil au code ci-dessous.

function Book() { 
    // unfinished code
} 
var myBook = new Book();
Copier après la connexion

La dernière ligne de code crée un objet Book et l'assigne à une variable ; une fois cette opération terminée, myBook est également une instance de Book même si le constructeur Book ne fait rien. Comme vous pouvez le voir, mis à part la mise en majuscule de la première lettre et l'utilisation du mot-clé new, il n'y a aucune différence entre les constructeurs et les fonctions ordinaires.

Déterminer le type d'instance

Pour déterminer si un objet est une certaine instance, nous pouvons utiliser l'opérateur instanceof :

myBook instanceof Book    // => true
myBook instanceof String  // => false
Copier après la connexion

Remarque : Si le côté droit n'est pas une instance d'une fonction, une erreur sera signalée :

myBook instanceof {}; // => TypeError: invalid 'instanceof' operand ({})
Copier après la connexion

Une autre méthode consiste à utiliser l'attribut constructeur. Toutes les instances d'objet ont un attribut constructeur, qui. pointe vers l'objet qui l'a créé.

myBook.constructor == Book;   // => true
Copier après la connexion

Tout comme le constructeur de myBook pointe vers Book. Tous les objets héritent de la propriété constructor de leur prototype :

var s = new String("text");
s.constructor === String;      // => true
"text".constructor === String; // => true
var o = new Object();
o.constructor === Object;      // => true
var o = {};
o.constructor === Object;      // => true
var a = new Array();
a.constructor === Array;       // => true
[].constructor === Array;      // => true
Copier après la connexion

Bien que l'utilisation du constructeur puisse être utilisée pour détecter les types d'instances, il est recommandé d'utiliser la méthode instanceof. Parce que l'attribut constructeur peut être remplacé... il n'est pas très fiable à utiliser.

Constructeur personnalisé

Le constructeur est comme un tampon à cookies. Tous fabriqués à partir de la même impression, ils se ressemblent tous (il en va de même pour les hommes qui n’ont pas de bonne chose).

function Book(name, year) {
    this.name = name;
    this.year = '(' + year + ')';
}
Copier après la connexion

Le constructeur Book nécessite deux paramètres Lors de l'utilisation du mot-clé new pour construire un objet, les deux paramètres formels seront transmis au nom et à l'année de l'objet Book.

var firstBook = new Book("Pro AngularJS", 2014);
var secondBook = new Book("Secrets Of The JavaScript Ninja", 2013); 
var thirdBook = new Book("JavaScript Patterns", 2010);

console.log(firstBook.name, firstBook.year);           
console.log(secondBook.name, secondBook.year);           
console.log(thirdBook.name, thirdBook.year);
Copier après la connexion

En savoir plus sur les constructeurs en JavaScript

Comme vous pouvez le constater, on peut créer rapidement un autre livre en passant différents paramètres. La même chose est vraie pour Array() et Date() de JavaScript.

Méthode Object.defineProperty

La méthode Object.defineProperty peut être utilisée dans le constructeur pour configurer les propriétés.

function Book(name) { 
    Object.defineProperty(this, "name", { 
        get: function() { 
            return "Book: " + name;       
        },        
        set: function(newName) {            
            name = newName;        
        },               
        configurable: false     
    }); 
}
var myBook = new Book("Single Page Web Applications");
console.log(myBook.name);    // => Book: Single Page Web Applications
// we cannot delete the name property because "configurable" is set to false
delete myBook.name;    
console.log(myBook.name);    // => Book: Single Page Web Applications
// but we can change the value of the name property
myBook.name = "Testable JavaScript";
console.log(myBook.name);    // => Book: Testable JavaScript
Copier après la connexion

Le code ci-dessus appelle la méthode ancêtre. Il fournit des interfaces getter et setter. La méthode getter est chargée de renvoyer la valeur encapsulée, et la méthode setter accepte les paramètres et attribue la valeur à la propriété. Lorsque nous opérons l'accès sur un certain attribut, ces deux méthodes sont appelées. En configurant configurable, nous pouvons définir si la valeur peut être supprimée.

La représentation littérale d'objet est le constructeur préféré

Le langage JavaScript possède neuf constructeurs intégrés : Object(), Array(), String(), Number() , Boolean(), Date(), Function(), Error() et RegExp(). Lorsque nous devons créer ces valeurs, nous sommes libres d'utiliser des littéraux ou des constructeurs. Mais dans les mêmes circonstances, les objets littéraux sont non seulement plus faciles à lire, mais aussi plus rapides car ils peuvent être optimisés lors de l'analyse. Utilisez donc des littéraux lorsque vous devez utiliser des objets simples.

// a number object
// numbers have a toFixed() method
var obj = new Object(5);
obj.toFixed(2);     // => 5.00
// we can achieve the same result using literals
var num = 5;
num.toFixed(2);     // => 5.00
// a string object
// strings have a slice() method 
var obj = new String("text");
obj.slice(0,2);     // => "te"
// same as above
var string = "text";
string.slice(0,2);  // => "te"
Copier après la connexion

L'utilisation du nouveau mot-clé est essentielle

N'oubliez pas d'utiliser le nouveau mot-clé lorsque vous utilisez le constructeur Si vous oubliez accidentellement, alors le constructeur This in pointe vers le global. objet (la valeur par défaut est la fenêtre du navigateur).

function Book(name, year) {
    console.log(this);
    this.name = name;
    this.year = year;
}
var myBook = Book("js book", 2014);  
console.log(myBook instanceof Book);  
console.log(window.name, window.year);
var myBook = new Book("js book", 2014);  
console.log(myBook instanceof Book);  
console.log(myBook.name, myBook.year);
Copier après la connexion

Le résultat de l'exécution du code ci-dessus est le suivant :

En savoir plus sur les constructeurs en JavaScript

S'il est en mode strict, le code ci-dessus générera une erreur en raison de strict mode Nous ne sommes pas autorisés à appeler le constructeur sans utiliser le mot-clé new.

Un constructeur avec un champ d'application plus élevé

Afin de résoudre le risque d'oubli d'utiliser le nouveau mot-clé, nous pouvons créer un constructeur avec un champ d'application plus élevé application en jugeant la valeur de ce constructeur.

function Book(name) { 
    if (!(this instanceof Book)) { 
        // the constructor was called without "new".
        return new Book(name);
    } 
}
Copier après la connexion

Après avoir ajouté ce code, nous pouvons utiliser le constructeur sans retenue.

function Book(name, year) { 
    if (!(this instanceof Book)) { 
        return new Book(name, year);
    }
    this.name = name;
    this.year = year;
}
var person1 = new Book("js book", 2014);
var person2 = Book("js book", 2014);
console.log(person1 instanceof Book);    // => true
console.log(person2 instanceof Book);    // => true
Copier après la connexion

De nombreux constructeurs intégrés font cela. En jugeant si this est le type actuel. Si le programmeur oublie d'ajouter le mot-clé new, alors nous renverrons un objet passé via new.

Conclusion

JavaScript n'a pas de classe (mais il peut être orienté objet), donc c'est déroutant pour les programmeurs habitués à utiliser des classes. Bien entendu, les constructeurs JavaScript ne sont pas différents des fonctions ordinaires, ils sont simplement générés via le mot-clé new. C'est très utile si nous avons besoin d'"imprimer des cookies".

Tutoriel recommandé : "Tutoriel vidéo JavaScript"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment mettre en œuvre un système de reconnaissance vocale en ligne à l'aide de WebSocket et JavaScript Comment mettre en œuvre un système de reconnaissance vocale en ligne à l'aide de WebSocket et JavaScript Dec 17, 2023 pm 02:54 PM

Comment utiliser WebSocket et JavaScript pour mettre en œuvre un système de reconnaissance vocale en ligne Introduction : Avec le développement continu de la technologie, la technologie de reconnaissance vocale est devenue une partie importante du domaine de l'intelligence artificielle. Le système de reconnaissance vocale en ligne basé sur WebSocket et JavaScript présente les caractéristiques d'une faible latence, d'un temps réel et d'une multiplateforme, et est devenu une solution largement utilisée. Cet article explique comment utiliser WebSocket et JavaScript pour implémenter un système de reconnaissance vocale en ligne.

WebSocket et JavaScript : technologies clés pour mettre en œuvre des systèmes de surveillance en temps réel WebSocket et JavaScript : technologies clés pour mettre en œuvre des systèmes de surveillance en temps réel Dec 17, 2023 pm 05:30 PM

WebSocket et JavaScript : technologies clés pour réaliser des systèmes de surveillance en temps réel Introduction : Avec le développement rapide de la technologie Internet, les systèmes de surveillance en temps réel ont été largement utilisés dans divers domaines. L'une des technologies clés pour réaliser une surveillance en temps réel est la combinaison de WebSocket et de JavaScript. Cet article présentera l'application de WebSocket et JavaScript dans les systèmes de surveillance en temps réel, donnera des exemples de code et expliquera leurs principes de mise en œuvre en détail. 1. Technologie WebSocket

Comment utiliser JavaScript et WebSocket pour mettre en œuvre un système de commande en ligne en temps réel Comment utiliser JavaScript et WebSocket pour mettre en œuvre un système de commande en ligne en temps réel Dec 17, 2023 pm 12:09 PM

Introduction à l'utilisation de JavaScript et de WebSocket pour mettre en œuvre un système de commande en ligne en temps réel : avec la popularité d'Internet et les progrès de la technologie, de plus en plus de restaurants ont commencé à proposer des services de commande en ligne. Afin de mettre en œuvre un système de commande en ligne en temps réel, nous pouvons utiliser les technologies JavaScript et WebSocket. WebSocket est un protocole de communication full-duplex basé sur le protocole TCP, qui peut réaliser une communication bidirectionnelle en temps réel entre le client et le serveur. Dans le système de commande en ligne en temps réel, lorsque l'utilisateur sélectionne des plats et passe une commande

Comment mettre en œuvre un système de réservation en ligne à l'aide de WebSocket et JavaScript Comment mettre en œuvre un système de réservation en ligne à l'aide de WebSocket et JavaScript Dec 17, 2023 am 09:39 AM

Comment utiliser WebSocket et JavaScript pour mettre en œuvre un système de réservation en ligne. À l'ère numérique d'aujourd'hui, de plus en plus d'entreprises et de services doivent fournir des fonctions de réservation en ligne. Il est crucial de mettre en place un système de réservation en ligne efficace et en temps réel. Cet article explique comment utiliser WebSocket et JavaScript pour implémenter un système de réservation en ligne et fournit des exemples de code spécifiques. 1. Qu'est-ce que WebSocket ? WebSocket est une méthode full-duplex sur une seule connexion TCP.

JavaScript et WebSocket : créer un système efficace de prévisions météorologiques en temps réel JavaScript et WebSocket : créer un système efficace de prévisions météorologiques en temps réel Dec 17, 2023 pm 05:13 PM

JavaScript et WebSocket : Construire un système efficace de prévisions météorologiques en temps réel Introduction : Aujourd'hui, la précision des prévisions météorologiques revêt une grande importance pour la vie quotidienne et la prise de décision. À mesure que la technologie évolue, nous pouvons fournir des prévisions météorologiques plus précises et plus fiables en obtenant des données météorologiques en temps réel. Dans cet article, nous apprendrons comment utiliser la technologie JavaScript et WebSocket pour créer un système efficace de prévisions météorologiques en temps réel. Cet article démontrera le processus de mise en œuvre à travers des exemples de code spécifiques. Nous

Tutoriel JavaScript simple : Comment obtenir le code d'état HTTP Tutoriel JavaScript simple : Comment obtenir le code d'état HTTP Jan 05, 2024 pm 06:08 PM

Tutoriel JavaScript : Comment obtenir le code d'état HTTP, des exemples de code spécifiques sont requis Préface : Dans le développement Web, l'interaction des données avec le serveur est souvent impliquée. Lors de la communication avec le serveur, nous devons souvent obtenir le code d'état HTTP renvoyé pour déterminer si l'opération a réussi et effectuer le traitement correspondant en fonction de différents codes d'état. Cet article vous apprendra comment utiliser JavaScript pour obtenir des codes d'état HTTP et fournira quelques exemples de codes pratiques. Utilisation de XMLHttpRequest

Comment utiliser insertBefore en javascript Comment utiliser insertBefore en javascript Nov 24, 2023 am 11:56 AM

Utilisation : En JavaScript, la méthode insertBefore() est utilisée pour insérer un nouveau nœud dans l'arborescence DOM. Cette méthode nécessite deux paramètres : le nouveau nœud à insérer et le nœud de référence (c'est-à-dire le nœud où le nouveau nœud sera inséré).

JavaScript et WebSocket : créer un système de traitement d'images en temps réel efficace JavaScript et WebSocket : créer un système de traitement d'images en temps réel efficace Dec 17, 2023 am 08:41 AM

JavaScript est un langage de programmation largement utilisé dans le développement Web, tandis que WebSocket est un protocole réseau utilisé pour la communication en temps réel. En combinant les puissantes fonctions des deux, nous pouvons créer un système efficace de traitement d’images en temps réel. Cet article présentera comment implémenter ce système à l'aide de JavaScript et WebSocket, et fournira des exemples de code spécifiques. Tout d’abord, nous devons clarifier les exigences et les objectifs du système de traitement d’images en temps réel. Supposons que nous disposions d'un appareil photo capable de collecter des données d'image en temps réel.

See all articles