Veraltet
Dieses Feature ist veraltet. Obwohl es in manchen Browsern immer noch funktioniert, wird von seiner Benutzung abgeraten, da es jederzeit entfernt werden kann. Es sollte daher nicht mehr verwendet werden.

Die Array.observe() Methode wurde für das asynchrone Beobachten von Veränderungen von Arrays benutzt, ähnlich wie Object.observe() für Objekte. Sie stellt einen Stream von Änderungen in der Reihenfolge, in denen sie auftreten, zur Verfügung.
Equivalent zu  Object.observe() und wird ausgeführt mit der Liste ["add", "update", "delete", "splice"]. Diese Funktion wurde als deprecated markiert und bereits aus einigen Browsern entfernt. Man kann stattdessen das allgemeinere Proxy Objekt verwenden.

Syntax

Array.observe(arr, callback)

Parameter

arr
    Das Array, welches beobachtet wird.
callback
Die Funktion, welche bei jeder Änderung mit folgenden Argumenten aufgerufen wird:
changes
Ein Array aus Objekten. Jedes repräsentiert eine Änderung. Die Eigenschaften dieser change Objekte sind:
  • name: Der Name der Eigenschaft, welche geändert wurde.
  • object: Das veränderte Array, nachdem die Änderung stattfand.
  • type: Ein String, welcher den Typ der Änderung darstellt. Er hat den Wert "add", "update", "delete", oder "splice".
  • oldValue: Nur für "update" und "delete" Typ. Der Wert vor der Änderung.
  • index: Nur für "splice" Typ. Der Index, an welchem die Änderung stattfand.
  • removed: Nur für "splice" Typ. Ein Array aus den gelöschten Elementen.
  • addedCount: Nur für "splice" Typ. Die Anzahl an Elementen, welche hinzugefügt wurden.

Beschreibung

Die callback Funktion wird jedes mal aufgerufen, wenn eine Änderung in arr stattfindet mit einem Array von allen Änderungen in der Reihenfolge in der sie auftreten

Änderungen über die Array Methoden, wie zum Beispiel Array.prototype.pop(), werden als "splice" "changes" dargestellt.
Index Änderungen, welche die Länge des Arrays nicht verändern, werden als "update" "changes" dargestellt.

Beispiele

Aufzeichnung verschiedener change Typen

var arr = ['a', 'b', 'c'];

Array.observe(arr, function(changes) {
  console.log(changes);
});

arr[1] = 'B';
// [{type: 'update', object: <arr>, name: '1', oldValue: 'b'}]

arr[3] = 'd';
// [{type: 'splice', object: <arr>, index: 3, removed: [], addedCount: 1}]

arr.splice(1, 2, 'beta', 'gamma', 'delta');
// [{type: 'splice', object: <arr>, index: 1, removed: ['B', 'c', 'd'], addedCount: 3}]

Spezifikationen

Strawman proposal specification.

Browserkompatibilität

FunktionChromeEdgeFirefoxInternet ExplorerOperaSafari
Grundlegende Unterstützung36 — 52 Nein Nein Nein Nein Nein
FunktionAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Grundlegende Unterstützung Nein Nein Nein Nein Nein Nein Nein

See also

Schlagwörter des Dokuments und Mitwirkende

Schlagwörter: 
Mitwirkende an dieser Seite: schlagi123, Maugo, oliver-j
Zuletzt aktualisiert von: schlagi123,