Poniższy przykład pokazuje, że JSON.stringify()
zwraca łańcuch "{}"
obiektów SpeechSynthesisVoice:Dlaczego JSON.stringify zwraca notację pustego obiektu "{}" dla obiektu, który wydaje się mieć właściwości?
var voiceObject = window.speechSynthesis.getVoices()[0];
JSON.stringify(voiceObject); //returns "{}"?
Kompletna przykład: JSFiddle
Dlaczego powrotu "{}"
a nie coś podobnego "{voiceURI: "Google Deutsch", name: "Google Deutsch", lang: "de-DE", localService: false, default: false}"
?
Należy zauważyć, że powyższy przykład nie działa w przypadku Chrome lub iOS; jest przeznaczony dla przeglądarki Mozilla Firefox.
Lub właściwości, które nie są poprawnymi typami danych JSON, chociaż prawdopodobnie nie jest to związane z przykładem pytania. –
OK, dzięki! Zaktualizowałem przykład, aby pokazać, że obiekt głosowy ma pewne właściwości, takie jak normalny obiekt. Jak widzisz (korzystając z widoku debugowania lub z wyjścia konsoli), że te właściwości są dziedziczone? –
@MathiasS: Kiedy '.hasOwnProperty()' zwraca fałsz – slebetman