Maison > Article > interface Web > Que sont les objets JavaScript ? Explication détaillée de la façon de créer du code objet
Qu'est-ce qu'un objet ?
D'après la définition de JavaScript, un objet est une collection de propriétés non ordonnées, et ses propriétés peuvent contenir des valeurs de base, des objets ou des fonctions. Autrement dit, un objet est un ensemble d'attributs sans ordre particulier. Chaque attribut est mappé à une valeur, qui est un ensemble de paires clé-valeur. La valeur peut être une donnée ou un objet.
L'objet le plus simple
Une paire d'accolades {} en JavaScript peut définir un objet. Cette façon d'écrire est en fait la même que d'appeler le constructeur d'Object
var obj={}; var obj2=new Object();
Constructed. comme ça L'objet qui sort ne contient qu'un pointeur vers le prototype de l'objet. Vous pouvez utiliser certaines méthodes telles que valueOf et hasQwnProperty, qui ont peu d'effet pratique. Les objets personnalisés ont toujours des propriétés et des méthodes personnalisées.
var obj={}; obj.a=0; obj.fn=function(){ alert(this); } var obj2={ a:0, fn:function(){ alert(this); } }
Vous pouvez y ajouter des propriétés et des méthodes via "." après avoir défini l'objet, ou vous pouvez utiliser la méthode d'affectation littérale pour y ajouter des propriétés et des méthodes lors de la définition de l'objet créé dans. de cette façon, ses méthodes et propriétés peuvent utiliser directement des références d'objet, similaires aux variables statiques et aux fonctions statiques d'une classe. Il existe un défaut évident dans la création d'objets de cette manière : il est très laborieux de définir un grand nombre d'objets, et cela. est nécessaire d'écrire du code presque répétitif encore et encore.
Il est temps que la fonction réapparaisse. En JavaScript, la fonction est un objet. Lors de la création d'un objet, vous pouvez supprimer la méthode createObj ci-dessus et utiliser directement la fonction comme objet. fonctionner comme un objet. La particularité de l’objet.
1. la fonction peut accepter des paramètres et peut créer des objets du même type avec des valeurs différentes en fonction des paramètres
2. opérateur), il renverra un objet. Dans la version paysanne pauvre et moyenne inférieure de jQuery, certaines connaissances de base des constructeurs ont été mentionnées. Copiez-le simplement
La valeur de retour du constructeur est divisée en deux. situations Lorsque la fonction n'a pas d'instruction return ou renvoie un type de base (bool, int, string, undefined, null), renvoie un objet anonyme créé par new, qui est l'instance de la fonction si le corps de la fonction renvoie un objet de type référence (). Tableau, Fonction, Objet, etc.), l'objet écrasera la création d'un nouvel objet anonyme comme valeur de retour.
3. Alors, comment utiliser la fonction pour résoudre le problème d'identification de type ? Chaque objet d'instance de fonction aura un attribut constructeur (pas "has", mais peut correspondre). vous pouvez également utiliser l'opérateur instanceof pour déterminer si l'objet est une instance de XXX.
Le code est le suivant :
function Person(name){ this.name=name; this.fn=function(){ alert(this.name); } } var person1=new Person('Byron'); console.log(person1.constructor==Person);//true console.log(person1 instanceof Person); //true
Ce serait parfait, non ! Bien que le constructeur puisse être spécifique à un objet, les méthodes doivent être répétées dans chaque instance de l'objet !
function Person(name){ this.name=name; this.fn=function(){ alert(this.name); } } var person1=new Person('Byron'); var person2=new Person('Frank'); console.log(person1.fn==person2.fn);//false
Écoutez, bien que les fn des deux instances soient exactement les mêmes, ce n'est pas la même chose. Si un objet fonction a mille méthodes, alors chaque instance doit les contenir. la méthode laisse la mémoire sans voix.
Existe-t-il un moyen presque parfait de construire un objet qui ne nécessite pas de travail répété, qui soit élégant et ne nécessite pas la répétition de méthodes courantes d'objets ? En fait, on peut constater que l'utilisation de function est déjà proche des exigences. Il n'y a qu'une seule différence : un conteneur partagé par toutes les instances d'objets fonction est nécessaire. Dans ce conteneur, les instances doivent partager des attributs et des méthodes. Il arrive que ce conteneur soit prêt - —prototype. Les étudiants qui ne connaissent pas le prototype peuvent consulter le prototype JavaScript
function Person(name){ this.name=name; } Person.prototype.share=[]; Person.prototype.printName=function(){ alert(this.name); } var person1=new Person('Byron'); var person2=new Person('Frank'); console.log(person1.printName==person2.printName);//true
De cette façon, chaque instance de personne a son propre nom d'attribut et possède également l'attribut. partage et méthode printName partagés par toutes les instances. Les questions de base sont toutes résolues, pour le traitement général des objets, vous pouvez toujours utiliser ce mode de création d'objets élégant et affectueux.
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!