Maison interface Web js tutoriel Modèle d'usine JavaScript, modèle de prototype, modèle de constructeur

Modèle d'usine JavaScript, modèle de prototype, modèle de constructeur

Mar 17, 2018 pm 02:52 PM
javascript js prototype

1. Qu'est-ce qu'un modèle ? Un modèle est une solution réutilisable, tandis qu'un anti-modèle est une mauvaise solution à un certain problème.

Exemples courants d'anti-modèles js

① Passer des chaînes à setTimeout et setInterval au lieu de fonctions déclenchera l'utilisation interne de eval().
② Définir un grand nombre de variables dans le contexte global pour polluer l'espace de noms global
③ Modifier le prototype de la classe Object
④ Utiliser js sous forme en ligne Le code JS intégré dans les fichiers HTML ne peut pas être inclus dans. tests unitaires externes dans les outils.

⑤Abus de document.write. Si document.write est exécuté après le chargement de la page, il réécrira la page sur laquelle nous nous trouvons. Si vous pouvez utiliser document.createElement à la place, essayez de ne pas utiliser document. écrire.

2. Catégories de modèles de conception

(1). Modèle d'usine (simple et complexe)

En termes simples, c'est du code encapsulé, une usine simple Le modèle est facile. comprendre.Sa fonction est d'utiliser des méthodes orientées objet pour encapsuler certains objets et encapsuler certains codes répétitifs qui prennent beaucoup de place. La méthode d'implémentation est très simple, c'est-à-dire créer un objet dans la fonction, attribuer des attributs et des méthodes à l'objet, puis renvoyer l'objet. Cette méthode consiste à résoudre le problème d'un grand nombre de duplications d'objets instanciés .

	function creatper(name,age){  
		var per=new Object(); //原料
		//加工
		per.name=name;
		per.age=age;  
		per.sayHi=function(){
		  	console.log(per.name+'已经有'+per.age+"岁");  
		}
		return per; //出厂
	}
	var test1=creatper('lili',22);
	var test2 =creatper('mike',25);//第二个实例
	test1.sayHi();
	test2.sayHi();
	console.log(test1.name);
Copier après la connexion

On peut voir qu'en utilisant le mode usine, vous pouvez appeler cela à plusieurs reprises par fonction pour générer des objets avec différentes valeurs d'attribut. C'est comme une usine, la production de masse, les matières premières, la transformation, et la livraison sont toutes très claires. Mais vous constaterez que le modèle d'usine ne peut pas identifier le type d'objets, car ce sont tous des objets, contrairement à Date, Array, etc.

Quand utiliser le patron d'usine ?
Le mode Usine est principalement utilisé dans les scénarios suivants :
①Lorsque des objets ou des composants impliquent une grande complexité
②Lorsqu'il est nécessaire de générer facilement différentes instances d'objets selon différents environnements

③Lorsque vous traitez de nombreux petits objets ou composants partageant les mêmes propriétés

(2). Modèle de constructeur (constructeur)

Le constructeur (méthode constructeur) peut être utilisé dans ECMAScript pour créer un objet spécifique. Ce mode peut simplement résoudre le problème selon lequel le mode usine ci-dessus ne peut pas identifier les instances d'objet.

	function Student(name,age,classa){//构造函数模式
        this.name = name;
        this.age = age;
        this.classa = classa;
        this.run = function () {
            console.log(this.name+ this.age+ "岁上"+this.classa +"!");
        }
    }
    var Benz = new Student('Lili',22,'初三');
    var BMW = new Student("Mike",25,"初一");
    console.log(Benz instanceof Student); //很清晰的识别他从属于Student
    Benz.run();
    BMW.run();
Copier après la connexion

Comme le montre le code, à l'exception des différents noms de fonction en mode usine, a. La méthode constructeur ne crée pas explicitement l'objet (new Object() ), b. Directement Les propriétés et méthodes sont affectées à cet objet, c. Il n'y a pas d'instruction return. Capable de reconnaître des objets (c'est là que le modèle constructeur surpasse le modèle usine) . Remarque : Spécifications de la méthode constructeur : 1. Le nom de la fonction et le nom du constructeur d'instanciation sont identiques et en majuscules 2. Pour créer un objet via le constructeur, vous devez utiliser l'opérateur new.

Puisque les objets peuvent être créés via des constructeurs, d'où vient cet objet et où new Object() est-il exécuté ? Le processus d'exécution est le suivant :
1. Lorsque le constructeur est utilisé et que new constructor() est utilisé, new Object() est exécuté en arrière-plan
2. , (c'est-à-dire l'objet créé par new Object()), et ceci dans le corps de la fonction représente l'objet créé par new Object().
3. Exécutez le code dans le constructeur

4. Renvoyez le nouvel objet (retour directement en arrière-plan).

(3). Le modèle de prototype

js stipule que chaque fonction créée a un attribut de prototype. Cet attribut est un pointeur, pointant vers un objet, et le but de cet objet. contient des propriétés et des méthodes partagées par toutes les instances d'un type spécifique. L'utilisation d'un objet prototype permet à tous les objets d'instance de contenir ces propriétés et méthodes.

	function Per(){}
	Per.prototype.name='小米';
	Per.prototype.age=22;
	Per.prototype.course=['php','javascript','java','C#'];
	Per.prototype.say=function(){
		console.log(this.name+"有"+this.age+"岁,学习了"+this.course+"等课程。");
	}
	var per1=new Per();
	var per2=new Per();
	per1.name='小林';
	per1.course.push('Html5');
	per1.say();
	per2.say();
	per2.course.pop();
Copier après la connexion

Concernant les défauts du modèle de prototype, je pense que c'est également évident. Il omet le constructeur pour transmettre les paramètres d'initialisation. Par conséquent, toutes les instances ont les mêmes attributs par défaut. , bien que vous puissiez apporter des modifications plus tard, ce n'est pas du tout pratique. Ce n'est pas le plus gros problème avec le modèle de prototype. En raison du partage, une instance modifie la référence et une autre les propriétés. ont également été modifiés en conséquence. Le mode prototype n’est donc généralement pas utilisé seul.

(4). Constructeur avec prototype = Modèle de prototype + Modèle de constructeur

	function Per(name,age,course){
		this.name=name;
		this.age=age;
		this.course=course;
	}
	Per.prototype.say=function(){
		console.log(this.name+"有"+this.age+"岁,学习了"+this.course+"等课程。");
	}
	var per1=new Per('Make',22,['C#','java','PHP','Javascript']);
	var per2=new Per('小高',21,['oracle','mysql','nodejs','html5']);
	per1.say();//Make有22岁,学习了C#,java,PHP,Javascript等课程。
	per2.say();//小高有21岁,学习了oracle,mysql,nodejs,html5等课程。
	per1.course.pop();
	per1.say();//Make有22岁,学习了C#,java,PHP等课程。
	per2.say();//小高有21岁,学习了oracle,mysql,nodejs,html5等课程。
Copier après la connexion

Analyse de ce qui précède : Le constructeur est utilisé pour définir les attributs de l'instance, tandis que le modèle de prototype est utilisé pour définir méthodes et certaines propriétés partagées. Chaque instance aura ses propres attributs, mais partagera en même temps des méthodes, économisant ainsi la mémoire au maximum. De plus, ce mode prend également en charge la transmission des paramètres initiaux. Le plus largement utilisé.

Recommandations associées :

Explication détaillée du mode prototype du modèle de conception JS

Explication détaillée du mode commande du modèle de conception JS

Explication détaillée du modèle de proxy des modèles de conception JS

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!

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment mettre en œuvre un système de reconnaissance vocale en ligne à l'aide de WebSocket et JavaScript Comment mettre en œuvre un système de reconnaissance vocale en ligne à l'aide de WebSocket et JavaScript Dec 17, 2023 pm 02:54 PM

Comment utiliser WebSocket et JavaScript pour mettre en œuvre un système de reconnaissance vocale en ligne Introduction : Avec le développement continu de la technologie, la technologie de reconnaissance vocale est devenue une partie importante du domaine de l'intelligence artificielle. Le système de reconnaissance vocale en ligne basé sur WebSocket et JavaScript présente les caractéristiques d'une faible latence, d'un temps réel et d'une multiplateforme, et est devenu une solution largement utilisée. Cet article explique comment utiliser WebSocket et JavaScript pour implémenter un système de reconnaissance vocale en ligne.

Recommandé : Excellent projet de détection et de reconnaissance des visages open source JS Recommandé : Excellent projet de détection et de reconnaissance des visages open source JS Apr 03, 2024 am 11:55 AM

La technologie de détection et de reconnaissance des visages est déjà une technologie relativement mature et largement utilisée. Actuellement, le langage d'application Internet le plus utilisé est JS. La mise en œuvre de la détection et de la reconnaissance faciale sur le front-end Web présente des avantages et des inconvénients par rapport à la reconnaissance faciale back-end. Les avantages incluent la réduction de l'interaction réseau et de la reconnaissance en temps réel, ce qui réduit considérablement le temps d'attente des utilisateurs et améliore l'expérience utilisateur. Les inconvénients sont les suivants : il est limité par la taille du modèle et la précision est également limitée ; Comment utiliser js pour implémenter la détection de visage sur le web ? Afin de mettre en œuvre la reconnaissance faciale sur le Web, vous devez être familier avec les langages et technologies de programmation associés, tels que JavaScript, HTML, CSS, WebRTC, etc. Dans le même temps, vous devez également maîtriser les technologies pertinentes de vision par ordinateur et d’intelligence artificielle. Il convient de noter qu'en raison de la conception du côté Web

Outils essentiels pour l'analyse boursière : découvrez les étapes pour dessiner des graphiques en bougies avec PHP et JS Outils essentiels pour l'analyse boursière : découvrez les étapes pour dessiner des graphiques en bougies avec PHP et JS Dec 17, 2023 pm 06:55 PM

Outils essentiels pour l'analyse boursière : découvrez les étapes pour dessiner des graphiques en bougies en PHP et JS. Des exemples de code spécifiques sont nécessaires. Avec le développement rapide d'Internet et de la technologie, le trading d'actions est devenu l'un des moyens importants pour de nombreux investisseurs. L'analyse boursière est une partie importante de la prise de décision des investisseurs, et les graphiques en bougies sont largement utilisés dans l'analyse technique. Apprendre à dessiner des graphiques en bougies à l'aide de PHP et JS fournira aux investisseurs des informations plus intuitives pour les aider à prendre de meilleures décisions. Un graphique en chandeliers est un graphique technique qui affiche les cours des actions sous forme de chandeliers. Il montre le cours de l'action

WebSocket et JavaScript : technologies clés pour mettre en œuvre des systèmes de surveillance en temps réel WebSocket et JavaScript : technologies clés pour mettre en œuvre des systèmes de surveillance en temps réel Dec 17, 2023 pm 05:30 PM

WebSocket et JavaScript : technologies clés pour réaliser des systèmes de surveillance en temps réel Introduction : Avec le développement rapide de la technologie Internet, les systèmes de surveillance en temps réel ont été largement utilisés dans divers domaines. L'une des technologies clés pour réaliser une surveillance en temps réel est la combinaison de WebSocket et de JavaScript. Cet article présentera l'application de WebSocket et JavaScript dans les systèmes de surveillance en temps réel, donnera des exemples de code et expliquera leurs principes de mise en œuvre en détail. 1. Technologie WebSocket

Conseils de développement PHP et JS : maîtrisez la méthode de création de graphiques en bougies boursières Conseils de développement PHP et JS : maîtrisez la méthode de création de graphiques en bougies boursières Dec 18, 2023 pm 03:39 PM

Avec le développement rapide de la finance sur Internet, l'investissement en actions est devenu le choix de plus en plus de personnes. Dans le trading d'actions, les graphiques en bougies sont une méthode d'analyse technique couramment utilisée. Ils peuvent montrer l'évolution des cours des actions et aider les investisseurs à prendre des décisions plus précises. Cet article présentera les compétences de développement de PHP et JS, amènera les lecteurs à comprendre comment dessiner des graphiques en bougies boursières et fournira des exemples de code spécifiques. 1. Comprendre les graphiques en bougies boursières Avant de présenter comment dessiner des graphiques en bougies boursières, nous devons d'abord comprendre ce qu'est un graphique en bougies. Les graphiques en chandeliers ont été développés par les Japonais

JavaScript et WebSocket : créer un système efficace de prévisions météorologiques en temps réel JavaScript et WebSocket : créer un système efficace de prévisions météorologiques en temps réel Dec 17, 2023 pm 05:13 PM

JavaScript et WebSocket : Construire un système efficace de prévisions météorologiques en temps réel Introduction : Aujourd'hui, la précision des prévisions météorologiques revêt une grande importance pour la vie quotidienne et la prise de décision. À mesure que la technologie évolue, nous pouvons fournir des prévisions météorologiques plus précises et plus fiables en obtenant des données météorologiques en temps réel. Dans cet article, nous apprendrons comment utiliser la technologie JavaScript et WebSocket pour créer un système efficace de prévisions météorologiques en temps réel. Cet article démontrera le processus de mise en œuvre à travers des exemples de code spécifiques. Nous

Tutoriel JavaScript simple : Comment obtenir le code d'état HTTP Tutoriel JavaScript simple : Comment obtenir le code d'état HTTP Jan 05, 2024 pm 06:08 PM

Tutoriel JavaScript : Comment obtenir le code d'état HTTP, des exemples de code spécifiques sont requis Préface : Dans le développement Web, l'interaction des données avec le serveur est souvent impliquée. Lors de la communication avec le serveur, nous devons souvent obtenir le code d'état HTTP renvoyé pour déterminer si l'opération a réussi et effectuer le traitement correspondant en fonction de différents codes d'état. Cet article vous apprendra comment utiliser JavaScript pour obtenir des codes d'état HTTP et fournira quelques exemples de codes pratiques. Utilisation de XMLHttpRequest

La relation entre js et vue La relation entre js et vue Mar 11, 2024 pm 05:21 PM

La relation entre js et vue : 1. JS comme pierre angulaire du développement Web ; 2. L'essor de Vue.js en tant que framework front-end ; 3. La relation complémentaire entre JS et Vue ; Vue.

See all articles