Cosa significa ? (JavaScript)

Uno dei miei avvisi sta dando il seguente risultato:

[object Object] 

Cosa significa esattamente? (Questo era un avviso di alcuni oggetti jQuery.)

Significa che stai avvisando un’istanza di un object. Quando si alert l’object, toString() viene richiamato sull’object e l’implementazione predefinita restituisce [object Object] .

 var objA = {}; var objB = new Object; var objC = {}; objC.toString = function () { return "objC" }; alert(objA); // [object Object] alert(objB); // [object Object] alert(objC); // objC 

Se si desidera ispezionare l’object, è necessario JSON.stringify() esso, JSON.stringify() esso o enumerare sopra le sue proprietà e ispezionarlo singolarmente utilizzando for in .

La funzione alert () non può emettere un object in modo leggibile. Prova invece a utilizzare console.log (object) e avvia la console del browser per eseguire il debug.

Ho scritto questa risposta in un’altra domanda che è stata duplicata, e presto voglio mettere la risposta chiusa, quindi qualsiasi modo qui è la mia risposta. i miei due centesimi, e spero che qualcun altro aiuti in qualche modo.

Poiché @Matt ha risposto alla ragione di [object object] modo da avere tre opzioni JSON.stringify(JSONobject) , console.log(JSONobject) o iterate sull’object, guarda l’esempio di base seguente.

 var jsonObj={ property1 : "one", property2 : "two", property3 : "three", property4 : "fourth", }; var strBuilder = []; for(key in jsonObj){ if (jsonObj.hasOwnProperty(key)) { strBuilder.push("Key is " + key + ", value is " + jsonObj[key] + "\n"); } } alert(strBuilder.join("")); 

https://jsfiddle.net/b1u6hfns/

Gli avvisi non sono i migliori per la visualizzazione di oggetti. Prova console.log? Se vedi ancora Object Object nella console, usa JSON.parse come questo> var obj = JSON.parse(yourObject); console.log(obj) var obj = JSON.parse(yourObject); console.log(obj)

Se lo stai inserendo nel DOM, prova a inserirlo

 
 {JSON.stringify(REPLACE_WITH_OBJECT, null, 4)} 

rende un po ‘più facile l’analisi visiva.