mozilla
Vos résultats de recherche

    Accesseurs de propriétés

    Résumé

    Les accesseurs de propriété permettent de fournir un accès aux propriétés d'un objet en utilisant une notation avec un point ou une notation avec des crochets

    Syntaxe

    objet.propriété
    objet["propriété"]
    

    Description

    Les objets peuvent être vus comme des tableaux associatifs (map, dictionnaires, table de hachage, annuaire, etc.). Les clés (keys) de ce tableau sont les noms des propriétés de l'objet. Lorsqu'on parle d'objets, on fait généralement une distinction entre les propriétés et les méthodes. En réalité cette différence est plus dûe à une convention qu'à une réelle distinction. En effet, une méthode est simplement une propriété qu'on peut appeler (sa valeur fera souvent référence à une instance de Function).

    Il existe deux façons d'accéder aux propriétés d'un objet : la notation avec point et la notation avec crochets.

    Notation avec point

    obtenir = objet.propriété;
    objet.propriété = définir;
    

    propriété doit être un identifiant JavaScript valide, c'est-à-dire une séquence de caractères alphanumériques, soulignés (« _ ») et signes dollar (« $ »), qui ne peut commencer par un nombre. Par exemple, objet.$1 est valide, mais objet.1 ne l'est pas.

    Exemple :

    document.createElement('pre');
    

    Ici, la méthode createElement est obtenue depuis l'objet document et est appelée.

    Notation avec crochets

    obtenir = objet[nom_de_propriété];
    objet[nom_de_propriété] = définir;
    

    nom_de_propriété est une chaîne de caractères. Celle-ci ne doit pas être un identifiant JavaScript valide ; elle peut avoir n'importe quelle valeur, par exemple "1foo", "!bar!" ou même " " (une espace).

    Exemple :

    document['createElement']('pre');
    

    Cette ligne fait exactement la même chose que l'exemple précédent.

    Noms de propriétés

    Les noms de propriétés doivent être des chaînes de caractères. Cela signifie que les autres types d'objet ne peuvent pas être utilisés comme clés d'un objet. Tout autre type d'objet, même un nombre, sera converti en une chaîne via sa méthode toString.

    Exemples :

    var objet = {};
    objet['1'] = 'valeur';
    console.log(objet[1]);
    

    Ceci affichera « valeur », étant donné que le nombre 1 sera converti en une chaîne "1".

    var toto = {propriété_unique : 1}, truc = {propriété_unique : 2}, objet = {};
    objet[toto] = 'valeur';
    console.log(objet[truc]);
    

    Ce code affichera également « valeur », étant donné que toto et truc seront convertis en la même chaîne de caractères. Dans le cas du moteur JavaScript SpiderMonkey, cette chaîne serait "['object Object']".

    Liaison de méthodes

    Une méthode n'est pas liée à l'objet dont elle est une méthode. En particulier, this n'est pas défini dans une méthode, c'est-à-dire que this ne fait pas nécessairement référence à un objet contenant la méthode. En réalité, this est « passé » par l'appel de la fonction.

    Pour plus d'informations, consultez la page sur l'opérateur this et les liaisons de méthodes.

    Note concernant eval

    Les nouveaux venus en JavaScript font souvent l'erreur d'utiliser eval alors que la notation avec crochets pourrait être utilisée. Par exemple, la syntaxe suivante est utilisée dans de nombreux scripts.

    x = eval('document.formulaire.' + controle + '.value');
    

    eval est lente et devrait être évitée dès que possible. Il est préférable d'utiliser la notation avec crochets :

    x = document.formulaire[controle].value;
    

    Spécifications

    Spécification Statut Commentaires
    Première édition d'ECMAScript. Standard Définition initiale, implémentée par JavaScript 1.0
    ECMAScript 5.1 (ECMA-262)
    La définition de 'Property Accessors' dans cette spécification.
    Standard  
    ECMAScript 6 (ECMA-262)
    La définition de 'Property Accessors' dans cette spécification.
    Draft  

    Compatibilité des navigateurs

    Fonctionnalité Chrome Firefox (Gecko) Internet Explorer Opera Safari
    Support simple (Oui) (Oui) (Oui) (Oui) (Oui)
    Fonctionnalité Android Chrome pour Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
    Support simple (Oui) (Oui) (Oui) (Oui) (Oui) (Oui)

    Voir aussi

    Étiquettes et contributeurs liés au document

    Contributors to this page: BenoitL, teoli, Jeremie, SphinxKnight, Mgjbot
    Dernière mise à jour par : SphinxKnight,
    Masquer la barre latérale