140 votes

Que signifie [objet objet] ?

J'essaie d'alerter une valeur retournée par une fonction et j'obtiens ceci dans l'alerte :

[object Object]  

Voici le code JavaScript :

<script type="text/javascript">
$(function ()
{
    var $main = $('#main'),
    $1 = $('#1'),
    $2 = $('#2');

    $2.hide(); // hide div#2 when the page is loaded

    $main.click(function ()
    {
        $1.toggle();
        $2.toggle();
    });

    $('#senddvd').click(function ()
    {
       alert('hello');
       var a=whichIsVisible();
       alert(whichIsVisible());
    });

    function whichIsVisible()
    {
        if (!$1.is(':hidden')) return $1;
        if (!$2.is(':hidden')) return $2;
    }

});

</script>

whichIsVisible est la fonction que j'essaie de vérifier.

1voto

Gleno Points 4580

Prenons l'exemple suivant :

const foo = {};
foo[Symbol.toStringTag] = "bar";
console.log("" + foo);

Quelles sorties

[object bar]

Fondamentalement, tout objet en javascript peut définir une propriété avec la balise Symbol.toStringTag et remplacer la sortie.

Construction en coulisse d'un nouvel objet dans les prototypes javascript à partir d'un objet quelconque doté d'une méthode "toString". L'objet par défaut fournit cette méthode comme une propriété, et cette méthode invoque en interne la balise pour déterminer comment contraindre l'objet à une chaîne de caractères. Si la balise est présente, alors elle est utilisée, sinon vous obtenez "Object" .

Devriez-vous définir Symbol.toStringTag ? Peut-être. Mais compter sur le fait que la chaîne soit toujours [object Object] pour les "vrais" objets n'est pas la meilleure idée.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X