Comprendre l'encapsulation JavaScript
L'encapsulation peut être définie comme le masquage de la représentation interne des données et des détails d'implémentation d'un objet. Le masquage des informations peut être renforcé par l'encapsulation.
En JavaScript, il n'y a pas de mots-clés explicites pour déclarer des membres privés. Par conséquent, si vous souhaitez réaliser l’encapsulation/masquage d’informations, vous devez partir d’une autre idée. Nous pouvons utiliser le concept de fermetures pour créer des méthodes et des propriétés accessibles uniquement depuis l'intérieur de l'objet afin de répondre aux exigences d'encapsulation.
Méthodes de base
De manière générale, nous apprenons à utiliser trois méthodes pour atteindre l'objectif de l'encapsulation.
Utilisez this.XXX pour déclarer une variable, puis déclarez getXXX, setXXX et d'autres méthodes d'acquisition et d'affectation de valeurs.
Utilisez this._XXX pour déclarer une variable, puis déclarez getXXX, setXXX et d'autres méthodes d'acquisition et d'affectation de valeurs.
Utilisez le concept de « portée de fonction » pour ce faire.
1. Ouvrez le portail
var Book = function(isbn,title,author){ this.setIsbn(isbn); this.setTitle(title); this.setAuthor(author); }; Book.prototype = { setIsbn: function(isbn){ this.isbn = isbn; }, getIsbn: function(){ return this.isbn; }, setTitle: function(title){ this.title = title; }, getTitle: function(){ return this.title; }, setAuthor: function(author){ this.author = author; }, getAuthor: function(){ return this.author; } };
Utilisez cette méthode pour réaliser l'encapsulation, bien que des évaluateurs et des cédants soient mis en place pour protéger les propriétés privées. Mais dans la réalité, les propriétés privées sont toujours accessibles de l’extérieur, donc fondamentalement, l’encapsulation n’est pas implémentée.
2. Utilisez les conventions de dénomination pour différencier
var Book = function(isbn,title,author){ this.setIsbn(isbn); this.setTitle(title); this.setAuthor(author); }; Book.prototype = { setIsbn: function(isbn){ this._isbn = isbn; }, getIsbn: function(){ return this._isbn; }, setTitle: function(title){ this._title = title; }, getTitle: function(){ return this._title; }, setAuthor: function(author){ this._author = author; }, getAuthor: function(){ return this._author; } };
Utilisez cette méthode avec le premier similaire. , sauf qu'une dénomination différente est utilisée pour protéger l'utilisation des propriétés privées. Cependant, du point de vue de l’application pratique, il n’implémente toujours pas l’encapsulation.
3. Utilisation de la portée de la fonction
var Book = function(newIsbn,newTitle,newAuthor){ var isbn,title,author; this.setIsbn=function(newIsbn){ isbn = newIsbn; }; this.getIsbn=function(){ return isbn; }; this.setTitle=function(newTitle){ title = newTitle; }; this.getTitle=function(){ return title; }; this.setIsbn=function(newAuthor){ author = newAuthor; }; this.getIsbn=function(){ return author; }; }
est déclarée dans une fonction JavaScript. Les variables sont étendues. , donc l'utilisation de cette méthode évite l'accès direct aux propriétés privées de l'extérieur. En gros, obtenez le contenu requis pour l’emballage.
Ce qu'il convient de noter ici, c'est que nous pouvons utiliser this.XXX et var pour déclarer des variables à l'intérieur de la fonction. La différence est que les variables déclarées à l'aide de this.XXX sont accessibles en externe. Les variables déclarées à l'aide de var sont protégées par la portée de la fonction et ne sont pas directement accessibles en dehors de la fonction.
4. Utiliser la transformation de la portée de la fonction
var Book = (function(){ // ...其他静态方法 return function(newIsbn,newTitle,newAuthor){ var isbn,title,author; this.setIsbn=function(newIsbn){ isbn = newIsbn; }; this.getIsbn=function(){ return isbn; }; this.setTitle=function(newTitle){ title = newTitle; }; this.getTitle=function(){ return title; }; this.setIsbn=function(newAuthor){ author = newAuthor; }; this.getIsbn=function(){ return author; }; }; })();
Cette méthode renvoie directement l'exécution de un constructeur. Et le constructeur ici est une fonction en ligne.
L'avantage de cette méthode est qu'"il n'y aura qu'une seule copie en mémoire. Parce que les autres méthodes statiques sont déclarées en dehors du constructeur, ce ne sont pas des méthodes privilégiées."
Juger une méthode. Le principe de savoir si elle doit être conçue comme une méthode statique est de savoir « si cette méthode accédera aux propriétés privées ». Si ce n’est pas nécessaire, il serait plus efficace de la concevoir comme une méthode statique puisqu’une seule copie sera créée.
Constante
Nous pouvons utiliser l'approche "uniquement getter, pas d'assignateur" pour implémenter des constantes.
// 1. var Book = function(){ var constants = ["key1": "1","key2": "2","key3": "3"]; this.getConstant = function(key){ return constants[key]; }; }; Book.getConstant("key1"); // 2. var Book = (function(){ var constants = ["key1": "1","key2": "2","key3": "3"]; var con = function(){}; con.getConstant = function(name){ return constants[name]; }; return con; })(); Book.getConstant("key1");
Avantages et inconvénients
1. >
L'encapsulation protège l'intégrité des données internes ;L'encapsulation facilite la reconstruction des objets
affaiblit le couplage entre les modules et améliore la réutilisabilité des objets ;
Oui Permet d'éviter ; conflits d'espace de noms ;
...
2. Inconvénients
doivent être associées à une gestion complexe ; la chaîne de portée rend la planification des erreurs plus difficile ;
Il est facile de provoquer une encapsulation excessive ;
JavaScript ne prend pas en charge l'encapsulation de manière native, il existe donc des problèmes de complexité dans l'implémentation de l'encapsulation en JavaScript ; Nous espérons que l’ensemble du contenu de cet article sera utile à l’étude de chacun.

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

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.

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

Introduction à l'utilisation de JavaScript et de WebSocket pour mettre en œuvre un système de commande en ligne en temps réel : avec la popularité d'Internet et les progrès de la technologie, de plus en plus de restaurants ont commencé à proposer des services de commande en ligne. Afin de mettre en œuvre un système de commande en ligne en temps réel, nous pouvons utiliser les technologies JavaScript et WebSocket. WebSocket est un protocole de communication full-duplex basé sur le protocole TCP, qui peut réaliser une communication bidirectionnelle en temps réel entre le client et le serveur. Dans le système de commande en ligne en temps réel, lorsque l'utilisateur sélectionne des plats et passe une commande

Selon les informations de ce site du 17 avril, TrendForce a récemment publié un rapport estimant que la demande pour les nouveaux produits de la plate-forme Blackwell de Nvidia est haussière et devrait entraîner une augmentation de la capacité totale de production d'emballages CoWoS de TSMC de plus de 150 % en 2024. Les nouveaux produits de la plate-forme Blackwell de NVIDIA comprennent des GPU de série B et des cartes accélératrices GB200 intégrant le propre processeur GraceArm de NVIDIA. TrendForce confirme que la chaîne d'approvisionnement est actuellement très optimiste quant au GB200. On estime que les livraisons en 2025 devraient dépasser le million d'unités, représentant 40 à 50 % des GPU haut de gamme de Nvidia. Nvidia prévoit de livrer des produits tels que le GB200 et le B100 au second semestre, mais le conditionnement des plaquettes en amont doit encore adopter des produits plus complexes.

Comment utiliser WebSocket et JavaScript pour mettre en œuvre un système de réservation en ligne. À l'ère numérique d'aujourd'hui, de plus en plus d'entreprises et de services doivent fournir des fonctions de réservation en ligne. Il est crucial de mettre en place un système de réservation en ligne efficace et en temps réel. Cet article explique comment utiliser WebSocket et JavaScript pour implémenter un système de réservation en ligne et fournit des exemples de code spécifiques. 1. Qu'est-ce que WebSocket ? WebSocket est une méthode full-duplex sur une seule connexion TCP.

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 : 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

Ce site Web a rapporté le 9 juillet que les processeurs de la série « Strix » à architecture AMD Zen5 auront deux solutions de packaging. Le plus petit StrixPoint utilisera le package FP8, tandis que le StrixHalo utilisera le package FP11. Source : source videocardz @Olrak29_ La dernière révélation est que la taille du boîtier FP11 de StrixHalo est de 37,5 mm x 45 mm (1 687 millimètres carrés), ce qui est la même que la taille du boîtier LGA-1700 des processeurs Intel AlderLake et RaptorLake. Le dernier APU Phoenix d'AMD utilise une solution de packaging FP8 d'une taille de 25*40 mm, ce qui signifie que le F de StrixHalo
