Maison interface Web js tutoriel Explication détaillée des compétences JavaScript constructor_javascript

Explication détaillée des compétences JavaScript constructor_javascript

May 16, 2016 pm 03:23 PM
构造函数

Le constructeur doit initialiser un objet instance et l'attribut prototype de l'objet doit hériter d'un objet instance.

Notes du constructeur :

1. La première lettre de la fonction par défaut est en majuscule

2. Le constructeur ne renvoie rien. L'opérateur new crée automatiquement les types donnés et les renvoie lorsque le constructeur est appelé, new crée automatiquement l'objet this et le type est le type du constructeur.

3. Vous pouvez également appeler return explicitement dans le constructeur. Si la valeur renvoyée est un objet, elle sera renvoyée à la place de l'instance d'objet nouvellement créée. Si la valeur renvoyée est un type primitif, elle est ignorée et une instance nouvellement créée est renvoyée. 

 function Person( name){
        this.name =name;
      }
       var p1=new Person('John');
Copier après la connexion

équivaut à :

   function person(name ){
        Object obj =new Object();
        obj.name =name;
         return obj;
      }
       var p1= person("John");
Copier après la connexion

4. Parce que le constructeur est également une fonction, il peut être appelé directement, mais sa valeur de retour n'est pas définie pour le moment, l'objet this dans le constructeur est égal à l'objet this global. this.name crée en fait un nom de variable globale. En mode strict, une erreur se produit lorsque vous appelez le constructeur Person via new.

5. Vous pouvez également utiliser la méthode Object.defineProperty() dans le constructeur pour nous aider à initialiser :

  function Person( name){
        Object.defineProperty(this, "name"{
          get :function(){
             return name;
          },
           set:function (newName){
            name =newName;
          },
          enumerable :true, //可枚举,默认为false
           configurable:true //可配置
         });
      }  
       var p1=new Person('John');
Copier après la connexion

6. Utiliser des objets prototypes dans le constructeur

 //比直接在构造函数中写的效率要高的多
       Person.prototype.sayName= function(){
         console.log(this.name);
      };
Copier après la connexion

Mais s'il existe de nombreuses méthodes, la plupart des gens adopteront une méthode plus simple : remplacer directement l'objet prototype par un objet littéral, comme suit :

 Person.prototype ={
        sayName :function(){
           console.log(this.name);
        },
        toString :function(){
           return "[Person "+ this.name+"]" ;
        }
      };
Copier après la connexion
Cette méthode est très populaire car vous n'avez pas besoin de taper Person.prototype plusieurs fois, mais il y a un effet secondaire auquel vous devez faire attention :

La réécriture de l'objet prototype en utilisant une forme littérale modifie les propriétés du constructeur, il pointe donc vers Object au lieu de Person. En effet, l'objet prototype possède une propriété de constructeur, que les autres instances d'objet n'ont pas. Lorsqu'une fonction est créée, sa propriété prototype est également créée et la propriété constructeur de l'objet prototype pointe vers la fonction. Lorsqu'un objet prototype est réécrit en utilisant la forme littérale d'objet, sa propriété constructeur sera définie sur un objet générique Object. Afin d'éviter cela, vous devez réinitialiser manuellement le constructeur lors de la réécriture de l'objet prototype, comme suit :


 Person.prototype ={
        constructor :Person,
        
        sayName :function(){
           console.log(this.name);
        },        
        toString :function(){
           return "[Person "+ this.name+"]" ;
        }
      };
Copier après la connexion
Testez à nouveau :

p1.constructor===Personne


vrai


p1.constructor===Objet


faux


p1 instance de Personne


vrai

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

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

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)

Constructeur en Python Constructeur en Python Sep 02, 2023 pm 04:29 PM

En Python, chaque classe possède un constructeur, qui est une méthode spéciale spécifiée à l’intérieur de la classe. Le constructeur/initialiseur sera appelé automatiquement lorsqu'un nouvel objet est créé pour la classe. Lorsqu'un objet est initialisé, le constructeur attribue des valeurs aux données membres de la classe. Il n'est pas nécessaire de définir explicitement le constructeur. Mais pour créer un constructeur, nous devons suivre les règles suivantes : - Pour une classe, il est permis de n'avoir qu'un seul constructeur. Le nom du constructeur doit être __init__. Les constructeurs doivent être définis à l'aide de propriétés d'instance (spécifiez simplement le mot-clé self comme premier argument). Il ne peut renvoyer aucune valeur sauf Aucune. Syntaxe classA():def__init__(self):pass Exemple Considérons l'exemple suivant et

Erreur de syntaxe C++ : Le constructeur défini en dehors de la classe doit être ajouté avec le nom de la classe comme qualificatif. Comment le corriger ? Erreur de syntaxe C++ : Le constructeur défini en dehors de la classe doit être ajouté avec le nom de la classe comme qualificatif. Comment le corriger ? Aug 22, 2023 pm 02:00 PM

C++ est un langage de programmation orienté objet largement utilisé lors de la définition d'un constructeur de classe en C++, si vous souhaitez placer la définition du constructeur en dehors de la classe, vous devez ajouter le nom de la classe comme qualificatif à la définition du constructeur. Pour spécifier à quelle classe appartient ce constructeur. Il s'agit d'une règle de base de la syntaxe C++. Si cette règle n'est pas respectée lors de la définition du constructeur d'une classe, une erreur de compilation apparaîtra, indiquant "Les constructeurs définis en dehors de la classe doivent être qualifiés avec le nom de la classe". Donc, si vous rencontrez ce genre d'erreur de compilation, vous devriez

Qu'est-ce qu'un constructeur ? Explication détaillée des constructeurs en JavaScript Qu'est-ce qu'un constructeur ? Explication détaillée des constructeurs en JavaScript Aug 04, 2022 pm 03:22 PM

En tant que base des prototypes et des chaînes de prototypes, une première compréhension du constructeur et de son processus d'exécution peut mieux nous aider à acquérir des connaissances sur les prototypes et les chaînes de prototypes. Cet article vous amènera à en savoir plus sur le constructeur en JavaScript et à vous présenter comment utiliser le constructeur pour créer un objet js. J'espère qu'il vous sera utile !

Le langage Go a-t-il des constructeurs ? Le langage Go a-t-il des constructeurs ? Jan 10, 2023 pm 02:15 PM

Le langage Go n'a pas de constructeurs. Le langage Go, en tant que langage structuré, n'a pas de constructeurs dans les langages orientés objet. Cependant, des effets similaires des constructeurs dans les langages orientés objet peuvent être obtenus de certaines manières, c'est-à-dire en utilisant le processus d'initialisation de la structure pour simuler le. mise en œuvre des constructeurs.

Erreur C++ : Le constructeur doit être déclaré dans l'espace public, comment y faire face ? Erreur C++ : Le constructeur doit être déclaré dans l'espace public, comment y faire face ? Aug 21, 2023 pm 08:26 PM

En programmation C++, le constructeur est une fonction importante utilisée pour initialiser les variables membres d'une classe. Il est automatiquement appelé lors de la création d'un objet pour garantir une initialisation correcte de l'objet. Le constructeur doit être déclaré dans la classe, mais vous rencontrerez parfois le message d'erreur « Le constructeur doit être déclaré dans la zone publique ». Cette erreur est généralement causée par des modificateurs d'accès incorrects sur le constructeur. En C++, les variables membres et les fonctions membres d'une classe ont un modificateur d'accès, notamment public, privé et protégé.

Erreur de syntaxe C++ : Un constructeur avec un seul paramètre doit être déclaré explicite. Comment la résoudre ? Erreur de syntaxe C++ : Un constructeur avec un seul paramètre doit être déclaré explicite. Comment la résoudre ? Aug 22, 2023 am 09:01 AM

En programmation C++, vous pouvez rencontrer le message d'erreur suivant : Les constructeurs avec un seul paramètre doivent être déclarés explicites. Ce message d'erreur peut dérouter les débutants. Voyons ensuite ce qu'est explicite en C++, les raisons pour lesquelles ce message d'erreur apparaît et comment résoudre ce problème. Le rôle de l'explicit en C++, si on définit un constructeur qui ne reçoit qu'un seul paramètre, alors il faut utiliser le mot clé explicit

Parlons de la façon d'utiliser la fonction Object() pour créer des objets en JavaScript Parlons de la façon d'utiliser la fonction Object() pour créer des objets en JavaScript Aug 04, 2022 pm 04:32 PM

Comment créer des objets à l'aide de la fonction Object() ? L'article suivant vous présentera la méthode de création d'objets à l'aide du constructeur Object() (avec trois autres méthodes de création d'objets, j'espère qu'il vous sera utile !)

Peut-il n'y avoir qu'un seul constructeur dans es6 ? Peut-il n'y avoir qu'un seul constructeur dans es6 ? Oct 18, 2022 pm 03:04 PM

Oui, chaque classe ne peut avoir qu'un seul constructeur. Si elle contient plusieurs constructeurs, une exception sera levée. Le constructeur est une fonction spéciale qui est principalement utilisée pour initialiser des objets, c'est-à-dire attribuer des valeurs initiales aux variables membres de l'objet ; deux points doivent être notés lors de l'utilisation du constructeur : 1. Le constructeur est utilisé pour créer un certain type d'objet ; , et sa première lettre doit être en majuscule ;2. Le constructeur n'a de sens que lorsqu'il est utilisé avec new.

See all articles