Maison  >  Article  >  interface Web  >  Quels sont les inconvénients des méthodes de construction javascript

Quels sont les inconvénients des méthodes de construction javascript

WBOY
WBOYoriginal
2022-07-28 16:50:351182parcourir

L'inconvénient du constructeur JavaScript est qu'à chaque fois qu'un objet est instancié, les propriétés et méthodes seront copiées ; s'il existe les mêmes méthodes entre les instances, bien que les propriétés et méthodes définies dans le constructeur soient accessibles, chaque instance le sont toutes. copié, ce qui entraînera un gaspillage de ressources système.

Quels sont les inconvénients des méthodes de construction javascript

L'environnement d'exploitation de ce tutoriel : système Windows 10, JavaScript version 1.8.5, ordinateur Dell G3.

Quels sont les inconvénients de la méthode de construction JavaScript

L'avantage est que l'objet peut être identifié via instanceof. L'inconvénient est que chaque fois qu'un objet est instancié, les propriétés et les méthodes seront à nouveau copiées

function CreateObj(uName) {
              this.userName = uName;
              this.showUserName = function () {
              return this.userName;
            }
        }
  
var obj1 = new CreateObj('ghostwu');
var obj2 = new CreateObj('卫庄');
  
console.log( obj1.showUserName === obj2.showUserName ); //false

De. les résultats d'exécution ci-dessus, nous pouvons voir que obj1. showUserName et obj.showUserName ne sont pas les mêmes [en js, le type de référence compare l'adresse, la fonction est un type de référence], mais il existe deux

adresses mémoire différentes, car les attributs de chaque objet sont différents, cela ne pose aucun problème, mais les méthodes exécutent le même code, il n'est donc pas nécessaire de le copier, ce qui gaspille de la mémoire. C'est l'inconvénient

Agrandir. connaissances

Constructeur : Si vous utilisez une fonction pour initialiser (à l'aide de l'opérateur new) un objet nouvellement créé, nous l'appelons un constructeur

function Person(){
    this.name = "zqq";
    this.age = 28;
}
var p = new Person();

Lorsque le constructeur est appelé avec new (en exécutant var p = new Person()) , ce qui suit se produit à l'intérieur de la fonction :

1. Créez un objet vide

var p = {};

2. Cette variable pointe vers l'objet p

Person.call(p)

3.p hérite du prototype du constructeur Person()

p.__proto__ = Person.prototype

4. code dans le constructeur Person()

Constructeur Différences avec les fonctions ordinaires :

1. Le constructeur est appelé en utilisant le mot-clé new ; les fonctions ordinaires ne sont pas appelées avec le mot-clé new

var p = new Person();
var p = Person();

2. utilisé à l'intérieur du constructeur ; il n'est pas recommandé de l'utiliser dans la fonction ordinaire car à ce stade, cela pointe vers l'objet global window, qui ajoutera involontairement des variables globales ou des fonctions à la fenêtre. À l'intérieur du constructeur, cela pointe vers le. nouvel objet construit. À l'intérieur de la fonction ordinaire, cela pointe vers C'est l'objet global de la fenêtre

3 Le constructeur n'a pas besoin de renvoyer une valeur de retour par défaut ; les fonctions ordinaires ont généralement une valeur de retour

Le constructeur la renverra. par défaut, qui est un nouvel objet d'instance

Si une fonction ordinaire n'a pas de valeur de retour, elle renverra undéfini

Si return est utilisé, la valeur de retour sera différente selon le type de valeur de retour

[Connexe recommandations :

tutoriel vidéo javascript

,

front-end web

]

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:
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