Maison  >  Article  >  interface Web  >  Explication détaillée de la fonction et du constructeur de la fabrique d'objets dans le modèle de conception JavaScript_Connaissances de base

Explication détaillée de la fonction et du constructeur de la fabrique d'objets dans le modèle de conception JavaScript_Connaissances de base

WBOY
WBOYoriginal
2016-05-16 15:48:181165parcourir

Ce qui suit est une explication textuelle détaillée et une analyse de code pour partager avec vous les connaissances sur la fonction de fabrique d'objets et le constructeur du modèle de conception JavaScript.

Présentation L'utilisation de littéraux d'objet ou l'ajout dynamique de nouveaux membres à des objets vides est le moyen le plus simple et le plus simple de créer des objets. Cependant, en plus de ces deux méthodes de création d'objets couramment utilisées, JavaScript propose également d'autres méthodes pour créer des objets. 1).Utilisez la fonction d'usine pour créer des objets. Nous pouvons écrire une fonction. La fonction de cette fonction est de créer des objets et de les convertir.

Aperçu

L'utilisation de littéraux d'objet ou l'ajout dynamique de nouveaux membres à des objets vides est le moyen le plus simple et le plus simple de créer des objets.
Cependant, en plus de ces deux méthodes de création d'objets couramment utilisées, JavaScript propose également d'autres méthodes pour créer des objets.
1). Créer des objets à l'aide des fonctions d'usine

Nous pouvons écrire une fonction dont la fonction est de créer des objets, que l'on peut appeler la "méthode de fabrique d'objets".

Copier le code Le code est le suivant :

//fonction d'usine
function createPerson(nom, âge, emploi) {                                    var o = new Object();                             o.nom = nom ; o.âge = âge ; o.job = travail ; o.sayName = function () {                                           console.info(ce.nom);   };       
return o; } //Utiliser la fonction d'usine pour créer un objet 
var person1 = createPerson('Zhang San', 29, 'Software Engineer');   var person2 = createPerson('李思', 40, 'Doctor');





2). Définir le constructeur d'objet


a). La première lettre du constructeur de l'objet est en majuscule
b). Utilisez ce mot-clé en interne pour ajouter des membres à l'objet
c). Utilisez le nouveau mot-clé pour appeler le constructeur d'objet

Copier le code

Le code est le suivant :

//Définir la fonction "constructeur" de l'objet  function Personne (nom, âge, travail) { this.name = nom;     this.age = âge; this.job = job;     this.sayName = function () {                                               console.info(this.name); }; 
} //Utilisez new pour appeler le constructeur d'objet afin de créer un objet
var p1 = new Person('Zhang San', 29 ans, 'Ingénieur logiciel');
var p2 = new Person('李思', 40, 'Doctor');



Un "constructeur" appelé de manière normale
Le constructeur est en fait une fonction. La différence est que lors de son appel, un mot-clé "nouveau" doit être ajouté. Si ce mot-clé n'est pas ajouté, l'appel à celui-ci est considéré comme un appel de fonction ordinaire.




Copier le code

Le code est le suivant :

//En tant que constructeur appelé par une fonction normale, attributs ajoutés via ceci,

// Devient les propriétés et méthodes de l'objet window.

console.info(window.name);//Zhang San

console.info(window.age); //29 console.info(window.job); //Ingénieur logiciel Le constructeur d'objet ressemble à ceci :




Copier le code

Le code est le suivant :

fonction Personne (nom) {

this.name = nom;

this.say = function () {

return "Je suis" this.name; }; > En fait c'est comme ça (signalisation) :




Copier le code


Le code est le suivant :

fonction Personne (nom) {
// var ceci = {};
this.name = nom;
this.say = function () {
return "Je suis" this.name;
};
// renvoie ceci ;
>

Travaux réalisés par le constructeur

1. Créer un nouvel objet
2. Laissez ceci du constructeur faire référence à l'objet nouvellement créé
3. Exécutez le code dans le constructeur, qui termine généralement le travail d'ajout de propriétés au nouvel objet
4. Renvoyez la référence d'objet nouvellement créée au monde extérieur.
La différence entre le constructeur d'objet et la méthode de fabrique d'objet

1. Il n'y a pas de code de création d'objet explicite dans le constructeur d'objet
2. Les attributs et méthodes que le nouvel objet devrait avoir sont ajoutés via cette référence.
3. Il n'y a pas d'instruction return dans le constructeur d'objet
Habituellement, la première lettre du constructeur d'objet est mise en majuscule pour le distinguer des fonctions ordinaires.
La propriété constructeur de l'objet

a). Utilisez la fonction de fabrique d'objets pour créer des objets, et la propriété constructeur de chaque objet fait référence à Object()

Copier le code Le code est le suivant :

var person = createPerson('Zhang San', 29, 'Software Engineer');
//Utilisez la méthode factory pour créer des objets,

L'attribut constructeur fait référence à la fonction Object()
console.info(person1.constructor === Objet);

//vrai

b). Utilisez le constructeur d'objet pour créer des objets, et l'attribut constructeur de chaque objet fait référence à ce constructeur

Copier le code Le code est le suivant :

var p = new Person('Zhang San', 29 ans, 'Ingénieur logiciel');
//Créez un objet en utilisant le constructeur d'objet,
//L'attribut constructeur de chaque objet fait référence à ce constructeur
console.info(p.constructor === Personne);
//True Comment éviter "d'oublier" du nouveau ? Vous pouvez utiliser arguments.callee pour résoudre ce problème
//Comprendre le rôle de arguments.callee
fonction TestArgumentsCallee()
{                                                       console.info(this);     
console.info (cette instance de TestArgumentsCallee) ; console.info (cette instance d'arguments.callee);
};  
TestArgumentsCallee(); //fenêtre
//false                                                                                //faux 
nouveau TestArgumentsCallee(); //TestArgumentsCallee                                                             //vrai

//vrai



Vous pouvez donc utiliser arguments.callee directement


Copier le code

Le code est le suivant :

//Evitez d'oublier les nouveautés
fonction MonObjet(valeur)
{    
if (!(cette instance d'arguments.callee))

{                                                  //Si l'appelant oublie d'ajouter un nouveau, ajoutez simplement un nouveau et rappelez    

retourner un nouveau MyObject(value);  

}       
this.prop = valeur;
}  
//Test
var obj1 = nouveau MonObjet(100);
console.info(obj1.prop);//100
var obj2 = MonObjet(200);                
console.info(obj2.prop); //200

Le contenu ci-dessus est une explication détaillée de la fonction de fabrique d'objets et du constructeur du modèle de conception JavaScript. J'espère qu'il vous plaira.

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