Le pattern Prototype permet de créer un objet basé sur un modèle/template ou un objet existant via le clonage.
L'objet prototype lui-même est effectivement utilisé comme un blueprint pour chaque objet à créer. Par exemple, si la fonction constructeur a un nom de propriété, chaque objet créé par le même constructeur aura la même propriété. En d'autres termes, nous créons des copies d'objets fonctionnels existants.
L'un des avantages de l'utilisation du prototype est que nous travaillons avec les atouts que JavaScript nous offre en natif. Non seulement le modèle est un moyen simple d'implémenter l'héritage, mais il peut également booster les performances.
Le véritable héritage prototypique, tel que défini dans ECMAScript 5, nécessite l'utilisation de Object.create.
Object.create crée un objet a des propriétés spécifiées et contient éventuellement des propriétés spécifiées (Object.create (prototype, optionalDescriptorObjects))
Object.create permet également de créer des concepts avancés tels que l'héritage où les objets peuvent hériter directement d'autres objets.
Ici, les propriétés de l'objet sont initialisées par le deuxième argument d'Object.create à l'aide d'un objet littéral avec une syntaxe similaire à celle utilisée par les méthodes Object.defineProperty et Object.defineProperties. Si nous souhaitons implémenter le prototype sans utiliser Object.create, nous pouvons simuler le modèle:
L'objet prototype lui-même est effectivement utilisé comme un blueprint pour chaque objet à créer. Par exemple, si la fonction constructeur a un nom de propriété, chaque objet créé par le même constructeur aura la même propriété. En d'autres termes, nous créons des copies d'objets fonctionnels existants.
L'un des avantages de l'utilisation du prototype est que nous travaillons avec les atouts que JavaScript nous offre en natif. Non seulement le modèle est un moyen simple d'implémenter l'héritage, mais il peut également booster les performances.
Le véritable héritage prototypique, tel que défini dans ECMAScript 5, nécessite l'utilisation de Object.create.
Object.create crée un objet a des propriétés spécifiées et contient éventuellement des propriétés spécifiées (Object.create (prototype, optionalDescriptorObjects))
Object.create permet également de créer des concepts avancés tels que l'héritage où les objets peuvent hériter directement d'autres objets.
Ici, les propriétés de l'objet sont initialisées par le deuxième argument d'Object.create à l'aide d'un objet littéral avec une syntaxe similaire à celle utilisée par les méthodes Object.defineProperty et Object.defineProperties. Si nous souhaitons implémenter le prototype sans utiliser Object.create, nous pouvons simuler le modèle:
Aucun commentaire:
Enregistrer un commentaire