Visit Mozilla.org

Référence de JavaScript 1.5 Core:Opérateurs:Opérateurs spéciaux:L'opérateur instanceof

Un article de MDC.


Sommaire

[modifier] Résumé

L'opérateur instanceof renvoie true si l'objet spécifié est du type d'objet spécifié.

Opérateur
Implémentation : JavaScript 1.4

[modifier] Syntaxe

nom_objet instanceof type_objet

[modifier] Paramètres

nom_objet 
Nom de l'objet à comparer à type_objet.
type_objet 
Type d'objet.

[modifier] Description

Utilisez instanceof lorsque vous avez besoin de confirmer le type d'un objet en cours d'exécution. Par exemple, lors du traitement d'exceptions, vous pouvez passer dans une branche de traitement différente selon le type de l'exception déclenchée.

Un objet doit toujours être spécifié à la droite de l'opérteur instanceof. Par exemple, il est possible de spécifier une chaîne créée avec le constructeur String, mais pas de spécifier une chaîne littérale.

couleur1 = new String("vert");
couleur1 instanceof String // renvoie true
couleur2 = "corail";
couleur2 instanceof String // renvoie false (couleur2 n'est pas un objet String)

[modifier] Exemples

Consultez également les exemples pour throw.

[modifier] Exemple : déterminer si jour est un objet Date

Le code qui suit utilise instanceof pour déterminer si jour est un objet Date. Comme jour est bien un objet Date, les instructions dans le bloc if seront exécutées.

jour = new Date(1995, 12, 17);
if (jour instanceof Date) {
   // instructions à exécuter
} 

[modifier] Exemple : démonstration du fait que les objets String et Date sont du type Object

Le code qui suit utilise instanceof pour démontrer que les objets String et Date sont également du type Object (ils sont dérivés d'Object).

ma_chaine = new String();
ma_date = new Date();

ma_chaine instanceof String // renvoie true
ma_chaine instanceof Object // renvoie true
ma_chaine instanceof Date   // renvoie false

ma_date instanceof Date     // renvoie true
ma_date instanceof Object   // renvoie true
ma_date instanceof String   // renvoie false

[modifier] Exemple : démonstration du fait que ma_voiture est du type Voiture mais aussi du type Object

Le code qui suit crée un objet du type Voiture et une instance de ce type d'objet, ma_voiture. L'opérateur instanceof démontre que l'objet ma_voiture est du type Voiture et du type Object.

function Voiture(marque, modèle, année) {
   this.marque = marque;
   this.modèle = modèle;
   this.année = année;
}
ma_voiture = new Voiture("Honda", "Accord", 1998);
a = ma_voiture instanceof Voiture; // renvoie true
b = ma_voiture instanceof Object;  // renvoie true