Maison > interface Web > js tutoriel > Quelles sont les méthodes de définition de la classe javascript

Quelles sont les méthodes de définition de la classe javascript

青灯夜游
Libérer: 2021-04-19 15:01:46
original
2959 Les gens l'ont consulté

Les méthodes sont : 1. Méthode constructeur, syntaxe "function Cat(){}var cat1=new Cat();}" 2. Méthode Object.create(), syntaxe "var Cat={} " ;var cat1=Object.create(Cat);”.

Quelles sont les méthodes de définition de la classe javascript

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

En programmation orientée objet, une classe est un modèle d'objet, qui définit les propriétés et méthodes communes au même groupe d'objets (également appelés "instances").

Le langage Javascript ne prend pas en charge les "classes", mais vous pouvez utiliser certaines solutions de contournement pour simuler des "classes".

1. Méthode constructeur

C'est une méthode classique et une méthode qui doit être enseignée dans les manuels. Il utilise le constructeur pour simuler une "classe" et utilise le mot-clé this en interne pour faire référence à l'objet instance.

  function Cat() {
    this.name = "大毛";
  }
Copier après la connexion

Lors de la génération d'une instance, utilisez le nouveau mot-clé. Les attributs et méthodes de la classe

  var cat1 = new Cat();
  alert(cat1.name); // 大毛
Copier après la connexion

peuvent également être définis sur l'objet prototype du constructeur.

  Cat.prototype.makeSound = function(){
    alert("喵喵喵");
  }
Copier après la connexion

Pour une introduction détaillée à cette méthode, veuillez lire la série d'articles que j'ai écrits "Programmation orientée objet Javascript", je n'entrerai donc pas dans les détails ici. Son principal inconvénient est qu'il est relativement compliqué, qu'il utilise ceci et un prototype et qu'il est très laborieux à écrire et à lire.

2. Méthode Object.create()

Afin de résoudre les lacunes de la "méthode constructeur" et de générer des objets plus facilement, la cinquième édition d'ECMAScript, le standard international pour Javascript (la version actuelle est la troisième édition), qui propose une nouvelle méthode Object.create().

En utilisant cette méthode, "classe" est un objet, pas une fonction.

  var Cat = {
    name: "大毛",
    makeSound: function(){ alert("喵喵喵"); }
  };
Copier après la connexion

Ensuite, utilisez directement Object.create() pour générer l'instance sans utiliser new.

  var cat1 = Object.create(Cat);
  alert(cat1.name); // 大毛
  cat1.makeSound(); // 喵喵喵
Copier après la connexion

Actuellement, les dernières versions de tous les principaux navigateurs (y compris IE9) ont déployé cette méthode. Si vous rencontrez un ancien navigateur, vous pouvez utiliser le code suivant pour le déployer vous-même.

  if (!Object.create) {
    Object.create = function (o) {
       function F() {}
      F.prototype = o;
      return new F();
    };
  }
Copier après la connexion

Cette méthode est plus simple que la "méthode constructeur", mais elle ne peut pas implémenter de propriétés privées et de méthodes privées, ni partager des données entre des objets d'instance, et la simulation des "classes" n'est pas assez complète.

[Apprentissage recommandé : Tutoriel JavaScript avancé]

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!

Étiquettes associées:
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal