mozilla
Vos résultats de recherche

    Object.prototype.valueOf()

    Résumé

    La méthode valueOf() renvoie la valeur primitive d'un objet donné.

    Syntaxe

    object.valueOf()

    Paramètres

    Aucun.

    Description

    JavaScript appelle la méthode valueOf pour convertir un objet en une valeur primitive. Il est rarement nécessaire d'appeler soi-même la méthode valueOf ; JavaScript l'invoque automatiquement lorsqu'il rencontre un objet alors qu'il attend une valeur primitive.

    Par défaut, la méthode valueOf est héritée par tout objet descendant d'Object. Tous les objets globaux natifs redéfinissent cette méthode pour renvoyer une valeur appropriée. Si un objet n'a pas de valeur primitive, valueOf renvoie l'objet lui-même, ce qui sera affiché comme :

    [object Object]
    

    valueOf peut être utilisée afin de convertir un objet prédéfini en une valeur primitive. Si un objet est défini dans un script, il est possible de surcharger Object.prototype.valueOf pour appeler une méthode personnalisée au lieu de la méthode par défaut d'Object.

    Surcharger valueOf pour des objets personnalisés

    Il est possible de créer une fonction à appeler à la place de la méthode valueOf par défaut. Celle-ci ne peut pas recevoir de paramètres.

    Supposons qu'on ait un type d'objet monTypeDeNombre et qu'on désire lui ajouter une méthode valueOf spécifique, on pourra utiliser le code suivant :

    monTypeDeNombre.prototype.valueOf = function(){ return valeurPrimitive;}; 
    

    En utilisant ce code, chaque fois qu'un objet de type monTypeDeNombre sera utilisé dans un contexte où il doit être représenté comme une valeur primitive, JavaScript appellera automatiquement la fonction qui y est définie.

    C'est habituellement JavaScript qui invoquera la méthode valueOf, mais il est aussi possible de l'appeler soi-même :

    monNombre.valueOf()
    

    Note : Les objets à utiliser dans un contexte textuel sont convertis avec la méthode toString() ce qui est différent de la conversion d'objets String en valeurs primitives avec valueOf. Tous les objets peuvent être convertis en chaînes de caractères (la façon la plus générique étant "[object type]"). En revanche, la plupart des objets ne peut pas être convertie en nombre ou booléen par exemple.

    Exemples

    Utiliser valueOf

    o = new Object();
    maVar = o.valueOf();      // [object Object]
    

    Spécifications

    Spécification Statut Commentaires
    Première édition d'ECMAScript. Standard Définition initiale. Implémentée avec JavaScript 1.1.
    ECMAScript 5.1 (ECMA-262)
    La définition de 'Object.prototype.valueOf' dans cette spécification.
    Standard  
    ECMAScript 6 (ECMA-262)
    La définition de 'Object.prototype.valueOf' 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

    Étiquettes : 
    Contributors to this page: tregagnon, BenoitL, SphinxKnight, MWeiss, teoli
    Dernière mise à jour par : SphinxKnight,