2016-07-18 8 views
0

Betrachten Sie zum Beispiel ein Position Objekt, das ich über einen API-Aufruf erhalten kann.Sind Objekte, die von Browser-APIs zurückgegeben werden, const?

Wenn ich die API mehr als einmal aufruft, gibt die API jedes Mal das gleiche (Singleton) Position-Objekt zurück, nachdem die Eigenschaftswerte des Objekts bearbeitet/aktualisiert wurden? Oder wird es jedes Mal ein neues Objekt instanziieren und zurückgeben?

I.e. Wenn ich das Position-Objekt speichere, könnten die gespeicherten/alten Werte beim nächsten API-Aufruf überschrieben werden? Um diese Möglichkeit zu vermeiden, muss es kopiert/kopiert werden?

Ist dieses Verhalten irgendwo definiert (für alle APIs oder für jede API)?

Ich denke, die API (und alle APIs) gibt neue Objekte zurück, aber ich frage mich, ob ich mich darauf verlassen kann.

+1

es hängt von der API ab: 'getElementsByTagName()' -vs- 'XMLHttpRequest' zum Beispiel. 9/10 Mal, und speziell aus Geolocation, erhalten Sie neue saubere Objekte. – dandavis

Antwort

1

Die API-Spezifikation sollte Ihnen sagen, was passiert. Zum Beispiel getCurrentPosition (Hervorhebung meins):

Bei Aufruf muss sofort zurück und dann asynchron versuchen, den aktuellen Standort des Geräts zu erhalten. Wenn der Versuch erfolgreich ist, muss der successCallback aufgerufen werden (d. H. Der -Vorgang muss für das Rückrufobjekt aufgerufen werden) mit ein neues Position Objekt, das den aktuellen Standort des Geräts widerspiegelt.

+0

Danke. In Kombination mit [dandavis comment] (http://stackoverflow.com/questions/38438243/are-objects-which-are-returned-by-browser-apis-const/38438376#comment64282312_38438243) scheint das eine vollständige Antwort zu sein. – ChrisW