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);”.
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 = "大毛"; }
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); // 大毛
peuvent également être définis sur l'objet prototype du constructeur.
Cat.prototype.makeSound = function(){ alert("喵喵喵"); }
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("喵喵喵"); } };
Ensuite, utilisez directement Object.create() pour générer l'instance sans utiliser new.
var cat1 = Object.create(Cat); alert(cat1.name); // 大毛 cat1.makeSound(); // 喵喵喵
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(); }; }
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!