Maison > interface Web > js tutoriel > le corps du texte

Que sont les objets JavaScript ? Explication détaillée de la façon de créer du code objet

伊谢尔伦
Libérer: 2017-07-24 15:36:36
original
1314 Les gens l'ont consulté

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();
Copier après la connexion

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);
                }
            }
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

É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
Copier après la connexion

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!

É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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!