Cet article poursuit notre exploration des capacités de programmation orientées objet de JavaScript, en s'appuyant sur les concepts introduits dans la partie 1.
Concepts clés:
arguments
Objet: Les fonctions JavaScript incluent intrinsèquement un tableau privé arguments
, fournissant une manipulation d'argument dynamique. Cela permet aux fonctions d'accepter un nombre variable de paramètres. Person()
, Book()
, et Library()
, montrent comment les objets peuvent contenir d'autres objets comme propriétés, modélisant des relations complexes. prototype
Propriété: La propriété prototype
d'un constructeur permet d'ajouter des méthodes et des propriétés à toutes les instances créées à partir de ce constructeur, améliorant la réutilisabilité et l'extensibilité du code. constructor
Propriété: La propriété constructor
d'un objet identifie la fonction utilisée pour la créer, permettant la vérification et la manipulation de types. Corvette
et Ares
hériter et étendre la fonctionnalité d'un objet Car
. Gestion des arguments dynamiques avec arguments
:
Une fonction reçoit automatiquement un objet spécial arguments
contenant tous les arguments passés en tant que tableau. Par exemple:
function testArg() { for (let i = 0; i < arguments.length; i++) { alert("Argument " + i + " is " + arguments[i]); } }
Cela permet d'appeler testArg()
avec n'importe quel nombre d'arguments sans les définir explicitement dans la signature de la fonction.
Exemple illustratif: un système de bibliothèque:
L'article démontre un exemple complexe: un système de bibliothèque. Il s'agit de créer des constructeurs Person
, Book
et Library
.
Le constructeur Person
est simple:
function Person(lastName, firstName) { this.lastName = lastName; this.firstName = firstName; }
Le constructeur Book
gère les détails du livre, y compris un tableau d'objets Person
représentant les auteurs:
function Book(title, pages, price) { this.title = title; this.pages = pages; this.price = price; this.authors = new Array(arguments.length - 3); for (let i = 0; i < arguments.length - 3; i++) { this.authors[i] = arguments[i + 3]; } }
Le constructeur Library
gère une collection d'objets Book
et comprend des méthodes pour calculer le prix total, le prix moyen, les livres d'ajout et la liste des auteurs. Le code du constructeur Library
est détaillé dans l'article d'origine et démontre des techniques de manipulation d'objets avancés.
en utilisant la propriété prototype
:
La propriété prototype
permet d'étendre les constructeurs d'objets. Les propriétés et les méthodes ajoutées au prototype
deviennent disponibles pour toutes les instances de ce constructeur. Par exemple:
function testArg() { for (let i = 0; i < arguments.length; i++) { alert("Argument " + i + " is " + arguments[i]); } }
Cela ajoute une propriété side
à tous les objets Square
. Les méthodes ajoutées au prototype sont également héritées. L'article montre également comment ajouter des méthodes personnalisées à des objets natifs comme String
en utilisant le prototype
.
Comprendre la propriété constructor
:
Chaque objet a une propriété constructor
, qui pointe la fonction qui l'a créé. Ceci est utile pour la vérification des types et d'autres manipulations d'objets. L'article illustre comment accéder et utiliser la propriété constructor
.
Héritage à travers la chaîne prototype:
L'article explique comment atteindre l'héritage en JavaScript à l'aide de la chaîne prototype. Il présente un exemple avec les constructeurs Car
, Corvette
et Ares
, démontrant comment Corvette
et Ares
hériter de Car
et remplacer ou étendre ses propriétés et méthodes.
Conclusion:
L'article fournit un aperçu complet des capacités OOP de JavaScript, mettant l'accent sur l'importance de comprendre l'objet arguments
, la propriété prototype
, la propriété constructor
et l'héritage de la chaîne prototype pour la construction d'applications robustes et maintenables. Il encourage une exploration plus approfondie et fournit des ressources pour un apprentissage supplémentaire. La section FAQ clarifie davantage les concepts Key OOP.
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!