Maison >interface Web >js tutoriel >Pourquoi JavaScript affiche-t-il « [object Object] » lors de la journalisation d'un objet ?

Pourquoi JavaScript affiche-t-il « [object Object] » lors de la journalisation d'un objet ?

DDD
DDDoriginal
2024-12-13 18:53:12475parcourir

Why Does JavaScript Display

Comprendre "[object Object]" en JavaScript

En JavaScript, vous pouvez rencontrer la chaîne "[object Object]" lorsque vous tentez d'alerter ou d'enregistrer la valeur de un objet. Cette chaîne représente la sérialisation par défaut d'un objet, fournissant des informations sur le type de l'objet.

Pourquoi "[object Object]" au lieu de "[object]" ?

Contrairement à certains langages de programmation, JavaScript a différents types d’objets. Chaque type est identifié par sa fonction constructeur. Les exemples suivants illustrent la sérialisation de différents types d'objets :

function stringify(x) {
    console.log(Object.prototype.toString.call(x));
}

stringify(function () {}); // [object Function]
stringify([]); // [object Array]
stringify(/x/); // [object RegExp]
stringify(new Date); // [object Date]
stringify({}); // [object Object]

En JavaScript, le terme « objet » (minuscule) fait généralement référence à la nature structurelle d'une chose. Cependant, lorsqu'ils parlent spécifiquement d'« objets », les développeurs entendent généralement « Objets objet » (en majuscules). En effet, la fonction constructeur de ces objets s'appelle Object.

Renvoi d'un objet à partir d'une fonction

Dans le code fourni, la fonction whichIsVisible() renvoie un objet qui représente l'élément visible. Lorsque vous tentez d'alerter la valeur de retour, JavaScript sérialise l'objet en "[object Object]" car il s'agit d'un objet Object.

Pour afficher l'élément réel plutôt que la chaîne sérialisée, vous pouvez modifier la fonction pour renvoyer l'ID de l'élément à la place :

function whichIsVisible() {
    if (!.is(':hidden')) return .attr('id');
    if (!.is(':hidden')) return .attr('id');
}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn