


Apprenez le javascript orienté objet et comprenez les compétences javascript object_javascript
1. Réflexions sur la programmation
Orienté processus : Centré sur le processus, affiné progressivement de haut en bas, le programme est considéré comme un ensemble d'appels de fonctions
Orienté objet : les objets servent d'unité de base du programme, et le programme est décomposé en données et opérations associées
2. Classes et objets
Classe : une description abstraite de choses ayant les mêmes caractéristiques et caractéristiques
Objet : une chose spécifique correspondant à un certain type
3. Trois caractéristiques majeures de l'orientation objet
Encapsulation : masquez les détails d'implémentation et réalisez la modularisation du code
Héritage : étendre les modules de code existants pour réaliser la réutilisation du code
Polymorphisme : différentes méthodes d'implémentation d'interfaces pour réaliser la réutilisation des interfaces
4. Définition d'objet : Une collection d'attributs non ordonnés, dont les attributs peuvent inclure des valeurs de base, des objets ou des fonctions
//简单的对象实例 var person = new Object(); person.name = "Nicholas"; person.age = 29; person.job = "Software Engineer"; person.sayName = function(){ alert(this.name); }
5. Types d'attributs internes : Les attributs internes ne sont pas accessibles directement. ECMAScript5 les met entre crochets et les divise en attributs de données et attributs d'accesseur
.
[1] L'attribut data contient un emplacement de valeur de données où la valeur peut être lue et écrite. Les attributs de données ont 4 caractéristiques :
a. [[Configurable]] : indique si l'attribut peut être redéfini en supprimant l'attribut via la suppression, si les caractéristiques de l'attribut peuvent être modifiées ou si l'attribut peut être modifié en tant qu'attribut accesseur pour les attributs définis directement sur le. objet, la valeur par défaut est true
.
b. [[Enumerable]] : Indique si les attributs peuvent être renvoyés via une boucle for-in. Pour les attributs définis directement sur l'objet, la valeur par défaut est true
.
c, [[Writable]] : Indique si la valeur de l'attribut peut être modifiée. Pour les attributs définis directement sur l'objet, la valeur par défaut est true
.
d. [[Valeur]] : contient la valeur des données de cet attribut, lisez-la à partir de cet emplacement ; lors de l'écriture de la valeur de l'attribut, enregistrez la nouvelle valeur à cet emplacement. Propriétés définies directement sur l'objet, la valeur par défaut est indéfinie
[2] La propriété accesseur ne contient pas de valeur de données , mais contient une paire de fonctions getter et setter (mais ces deux fonctions ne sont pas obligatoires). Lorsque la propriété accesseur est lue, la fonction getter est appelée, qui est chargée de renvoyer une valeur valide ; lorsque la propriété accesseur est écrite, la fonction setter est appelée et la nouvelle valeur est transmise, et cette fonction est chargée de décider comment pour gérer la fonction. Les propriétés accesseurs ont les 4 caractéristiques suivantes :
a. [[Configurable]] : indique si l'attribut peut être redéfini en supprimant l'attribut via la suppression, si les caractéristiques de l'attribut peuvent être modifiées ou si l'attribut peut être modifié en attribut accesseur. Propriétés définies directement sur l'objet, la valeur par défaut est true
b. [[Enumerable]] : Indique si l'attribut peut être renvoyé via une boucle for-in. L'attribut est défini directement sur l'objet. La valeur par défaut est true
.
c, [[Get]] : Fonction appelée lors de la lecture des attributs. La valeur par défaut est indéfinie
d.[[Set]] : Fonction appelée lors de l'écriture des attributs. La valeur par défaut est indéfinie
6. Modifier les propriétés internes : Utilisez la méthode object.defineProperty() de ECMAScript5, qui reçoit trois paramètres : l'objet où se trouve la propriété, le nom de la propriété et un objet descripteur
[Note 1]IE8 est la première version du navigateur à implémenter la méthode Object.defineProperty(). Cependant, cette version de l'implémentation présente de nombreuses limitations : cette méthode ne peut être utilisée que sur des objets DOM, et seules les propriétés d'accesseur peuvent être créées. En raison d'une implémentation incomplète, il n'est pas recommandé d'utiliser la méthode Object.defineProperty() dans IE8
[Note 2]Les navigateurs qui ne prennent pas en charge la méthode Object.defineProperty() ne peuvent pas modifier [[Configurable]] et [[Enumerable]]
[1] Modifier les attributs des données
//直接在对象上定义的属性,Configurable、Enumerable、Writable为true var person = { name:'cook' }; Object.defineProperty(person,'name',{ value: 'Nicholas' }); alert(person.name);//'Nicholas' person.name = 'Greg'; alert(person.name);//'Greg'
//不是在对象上定义的属性,Configurable、Enumerable、Writable为false var person = {}; Object.defineProperty(person,'name',{ value: 'Nicholas' }); alert(person.name);//'Nicholas' person.name = 'Greg'; alert(person.name);//'Nicholas'
//该例子中设置writable为false,则属性值无法被修改 var person = {}; Object.defineProperty(person,'name',{ writable: false, value: 'Nicholas' }); alert(person.name);//'Nicholas' person.name = 'Greg'; alert(person.name);//'Nicholas'
//该例子中设置configurable为false,则属性不可配置 var person = {}; Object.defineProperty(person,'name',{ configurable: false, value: 'Nicholas' }); alert(person.name);//'Nichols' delete person.name; alert(person.name);//'Nicholas'
[Note] Une fois qu'une propriété est définie comme non configurable, elle ne peut pas être reconfigurable en configurable. Cela signifie que vous pouvez appeler Object.defineProperty() plusieurs fois pour modifier la même propriété, mais après avoir défini configurable sur false , là sont des restrictions
var person = {}; Object.defineProperty(person,'name',{ configurable: false, value: 'Nicholas' }); //会报错 Object.defineProperty(person,'name',{ configurable: true, value: 'Nicholas' });
[2] Modifier les propriétés de l'accesseur
//简单的修改访问器属性的例子 var book = { _year: 2004, edition: 1 }; Object.defineProperty(book,'year',{ get: function(){ return this._year; }, set: function(newValue){ if(newValue > 2004){ this._year = newValue; this.edition += newValue - 2004; } } }); book.year = 2005; alert(book.year)//2005 alert(book.edition);//2
[Note 1] Spécifier uniquement getter signifie que l'attribut ne peut pas être écrit
var book = { _year: 2004, edition: 1 }; Object.defineProperty(book,'year',{ get: function(){ return this._year; }, }); book.year = 2005; alert(book.year)//2004
[Note 2] Spécifier uniquement setter signifie que la propriété ne peut pas être lue
var book = { _year: 2004, edition: 1 }; Object.defineProperty(book,'year',{ set: function(newValue){ if(newValue > 2004){ this._year = newValue; this.edition += newValue - 2004; } } }); book.year = 2005; alert(book.year);//undefined
[Supplément] Utilisez deux méthodes non standard pour créer des propriétés d'accesseur : __defineGetter__() et __defineSetter__()
var book = { _year: 2004, edition: 1 }; //定义访问器的旧有方法 book.__defineGetter__('year',function(){ return this._year; }); book.__defineSetter__('year',function(newValue){ if(newValue > 2004){ this._year = newValue; this.edition += newValue - 2004; } }); book.year = 2005; alert(book.year);//2005 alert(book.edition);//2
7. Définir plusieurs propriétés : ECMAScript5 définit une méthode Object.defineProperties(), qui peut être utilisée pour définir plusieurs propriétés à la fois via des descripteurs. Cette méthode reçoit deux paramètres d'objet : Premier Le premier objet est. l'objet dont les propriétés doivent être ajoutées et modifiées. Les propriétés du deuxième objet correspondent bi-univoquement aux propriétés du premier objet à ajouter ou à modifier
var book = {}; Object.defineProperties(book,{ _year: { value: 2004 }, edition: { value: 1 }, year: { get: function(){ return this._year; }, set: function(newValue){ if(newValue > 2004){ this._year = newValue; this.edition += newValue - 2004; } } } });
八、读取属性特性:使用ECMAScript5的Object.getOwnPropertyDescriptor()方法,可以取得给定属性的描述符。该方法接收两个参数:属性所在对象和要读取其描述符的属性名称,返回值是一个对象。
[注意]可以针对任何对象——包括DOM和BOM对象,使用Object.getOwnPropertyDescriptor()方法
var book = {}; Object.defineProperties(book,{ _year: { value: 2004 }, edition: { value: 1 }, year: { get: function(){ return this._year; }, set: function(newValue){ if(newValue > 2004){ this._year = newValue; this.edition += newValue - 2004; } } } }); var descriptor = Object.getOwnPropertyDescriptor(book,'_year'); alert(descriptor.value);//2004 alert(descriptor.configurable);//false alert(typeof descriptor.get);//'undefined' var descriptor = Object.getOwnPropertyDescriptor(book,'year'); alert(descriptor.value);//'undefined' alert(descriptor.configurable);//false alert(typeof descriptor.get);//'function'
以上就是关于javascript面向对象的详细内容介绍,希望对大家的学习有所帮助。

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

AI Hentai Generator
Générez AI Hentai gratuitement.

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)

Sujets chauds

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

L'objet Request en PHP est un objet utilisé pour gérer les requêtes HTTP envoyées par le client au serveur. Grâce à l'objet Request, nous pouvons obtenir les informations de demande du client, telles que la méthode de demande, les informations d'en-tête de demande, les paramètres de demande, etc., afin de traiter et de répondre à la demande. En PHP, vous pouvez utiliser des variables globales telles que $_REQUEST, $_GET, $_POST, etc. pour obtenir les informations demandées, mais ces variables ne sont pas des objets, mais des tableaux. Afin de traiter les informations demandées de manière plus flexible et plus pratique, vous pouvez

Voici comment convertir un tableau de résultats de requête MySQL en objet : Créez un tableau d'objets vide. Parcourez le tableau résultant et créez un nouvel objet pour chaque ligne. Utilisez une boucle foreach pour attribuer les paires clé-valeur de chaque ligne aux propriétés correspondantes du nouvel objet. Ajoute un nouvel objet au tableau d'objets. Fermez la connexion à la base de données.

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

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

En PHP, un tableau est une séquence ordonnée et les éléments sont accessibles par index ; un objet est une entité avec des propriétés et des méthodes, créée via le mot-clé new. L'accès au tableau se fait via l'index, l'accès aux objets se fait via les propriétés/méthodes. Les valeurs du tableau sont transmises et les références d'objet sont transmises.

Introduction à la méthode d'obtention du code d'état HTTP en JavaScript : Dans le développement front-end, nous devons souvent gérer l'interaction avec l'interface back-end, et le code d'état HTTP en est une partie très importante. Comprendre et obtenir les codes d'état HTTP nous aide à mieux gérer les données renvoyées par l'interface. Cet article explique comment utiliser JavaScript pour obtenir des codes d'état HTTP et fournit des exemples de code spécifiques. 1. Qu'est-ce que le code d'état HTTP ? Le code d'état HTTP signifie que lorsque le navigateur lance une requête au serveur, le service

En C++, il y a trois points à noter lorsqu'une fonction renvoie un objet : Le cycle de vie de l'objet est géré par l'appelant pour éviter les fuites mémoire. Évitez les pointeurs suspendus et assurez-vous que l'objet reste valide après le retour de la fonction en allouant dynamiquement de la mémoire ou en renvoyant l'objet lui-même. Le compilateur peut optimiser la génération de copie de l'objet renvoyé pour améliorer les performances, mais si l'objet est transmis par sémantique de valeur, aucune génération de copie n'est requise.
