Wat betekent [object Object]? (JavaScript)

Een van mijn waarschuwingen geeft het volgende resultaat:

[object Object] 

Wat betekent dit precies? (Dit was een waarschuwing voor een jQuery-object.)


Antwoord 1, autoriteit 100%

Het betekent dat u een instantie van een object waarschuwt. Wanneer alerthet object, toString()wordt aangeroepen voor het object, en de standaardimplementatie retourneert [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

Als je het object wilt inspecteren, moet je het console.log, JSON.stringify()het, of de eigenschappen ervan opsommen en ze afzonderlijk inspecteren met for in.


Antwoord 2, autoriteit 22%

Omdat @Matt de reden van [object Object]heeft beantwoord, zal ik uitleggen hoe je de waarde van het object kunt inspecteren. Er zijn drie opties waar ik aan denk:

  • JSON.stringify(JSONobject)
  • console.log(JSONobject)
  • of herhaal het object

Basisvoorbeeld.

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(""));
// or console.log(strBuilder.join(""))

https://jsfiddle.net/b1u6hfns/


Antwoord 3, autoriteit 15%

De functie alert() kan een object niet op een leesvriendelijke manier weergeven. Probeer in plaats daarvan console.log(object) te gebruiken en start de console van uw browser om fouten op te sporen.


Antwoord 4, autoriteit 3%

Als je het in de DOM plaatst, probeer het dan in te pakken

<pre>
    <code>{JSON.stringify(REPLACE_WITH_OBJECT, null, 4)}</code>
</pre>

maakt het een beetje gemakkelijker om visueel te ontleden.


Antwoord 5, autoriteit 3%

Dat komt omdat er verschillende soorten objecten in Javascript zijn!

Bijvoorbeeld

  • Functie-objecten:

stringify(function (){})-> [object Function]

  • Array-objecten:

stringify([])-> [object Array]

  • RegExp-objecten

stringify(/x/)-> [object RegExp]

  • Datumobjecten

stringify(new Date)-> [object Date]

...
  • Objectobjecten!

stringify({})-> [object Object]

de constructorfunctie heet Object(met een hoofdletter “O”), en de term “object” (met kleine “o”) verwijst naar de structurele aard van het ding.

Als je het hebt over “objecten” in Javascript, bedoel je eigenlijk “Objectobjecten“, en niet de andere typen.

Als je waarde wilt zien in “[Object objects]” gebruik dan:

console.log(JSON.stringify(result))

Antwoord 6

Waarschuwingen zijn niet de beste manier om objecten weer te geven. Probeer console.log? Als je Object Object nog steeds in de console ziet, gebruik dan JSON.parse als volgt > var obj = JSON.parse(yourObject); console.log(obj)


Antwoord 7

Een andere optie is om JSON.stringify(obj)

te gebruiken

Bijvoorbeeld:

exampleObj = {'a':1,'b':2,'c':3};
alert(JSON.stringify(exampleObj))

https://www.w3schools.com/js/js_json_stringify.asp

Other episodes