From a065e04d529da1d847b5062a12c46d916408bf32 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 21:46:22 -0500 Subject: update based on https://github.com/mdn/yari/issues/2028 --- .../global_objects/object/observe/index.html | 199 --------------------- 1 file changed, 199 deletions(-) delete mode 100644 files/de/web/javascript/reference/global_objects/object/observe/index.html (limited to 'files/de/web/javascript/reference/global_objects/object') diff --git a/files/de/web/javascript/reference/global_objects/object/observe/index.html b/files/de/web/javascript/reference/global_objects/object/observe/index.html deleted file mode 100644 index df68348028..0000000000 --- a/files/de/web/javascript/reference/global_objects/object/observe/index.html +++ /dev/null @@ -1,199 +0,0 @@ ---- -title: Object.observe() -slug: Web/JavaScript/Reference/Global_Objects/Object/observe -tags: - - Beobachter - - Data-Binding - - Deprecated - - JavaScript - - Méthode - - Object - - Veraltet -translation_of: Archive/Web/JavaScript/Object.observe ---- -
{{JSRef}} {{obsolete_header}}
- -

Die Object.observe() Methode kann genutzt werden, um auf Änderungen an einem Objekt asynchron zu reagieren. Sie bietet einen Stream der Änderungen in der Reihenfolge ihres Auftretens. Da die Methode veraltet ist und Beschränkungen aufweist, sollte lieber ein {{jsxref("Proxy")}} Objekt verwendet werden.

- -

Syntax

- -
Object.observe(obj, callback[, acceptList])
- -

Parameter

- -
-
obj
-
Das Objekt, das beobachtet werden soll.
-
callback
-
Eine Callback-Funktion, die jedes mal aufgerufen wird, wenn eine Änderung am Objekt vorgenommen wird -
-
changes
-
Ein Array von Objekten, die die vorgenommenen Änderungen repräsentieren. Die Eigenschaften der Objekte sind jeweils -
    -
  • name: Der Name der Eigenschaft, welche geändert wurde
  • -
  • object: Das (bereits) geänderte Objekt.
  • -
  • type: Ein String der Angibt, welcher Art die vorgenommene Änderung war. Entspricht "add", "update", oder "delete".
  • -
  • oldValue: Existiert nur, wenn der type "update" oder "delete" ist. Der ursprüngliche Wert vor der Änderung.
  • -
-
-
-
-
acceptList
-
Eine Liste von Änderungstypen die für das gegebene Objekt und jeweilige Callback beobachtet werden sollen. Standardmäßig ["add", "update", "delete", "reconfigure", "setPrototype", "preventExtensions"] .
-
- -

Beschreibung

- -

callback wird jedes mal aufgerufen, wenn das obj geändert wird. Die Funktion erhält dabei die Liste aller Änderungen in chronologischer Reihenfolge ihres Auftretens.

- -

Beispiele

- -

Ausgabe aller sechs Änderungsarten

- -
var obj = {
-  foo: 0,
-  bar: 1
-};
-
-Object.observe(obj, function(changes) {
-  console.log(changes);
-});
-
-obj.baz = 2;
-// [{name: 'baz', object: <obj>, type: 'add'}]
-
-obj.foo = 'hello';
-// [{name: 'foo', object: <obj>, type: 'update', oldValue: 0}]
-
-delete obj.baz;
-// [{name: 'baz', object: <obj>, type: 'delete', oldValue: 2}]
-
-Object.defineProperty(obj, 'foo', {writable: false});
-// [{name: 'foo', object: <obj>, type: 'reconfigure'}]
-
-Object.setPrototypeOf(obj, {});
-// [{name: '__proto__', object: <obj>, type: 'setPrototype', oldValue: <prototype>}]
-
-Object.seal(obj);
-// [
-//   {name: 'foo', object: <obj>, type: 'reconfigure'},
-//   {name: 'bar', object: <obj>, type: 'reconfigure'},
-//   {object: <obj>, type: 'preventExtensions'}
-// ]
-
- -

Data Binding

- -
// A user model
-var user = {
-  id: 0,
-  name: 'Brendan Eich',
-  title: 'Mr.'
-};
-
-// Create a greeting for the user
-function updateGreeting() {
-  user.greeting = 'Hello, ' + user.title + ' ' + user.name + '!';
-}
-updateGreeting();
-
-Object.observe(user, function(changes) {
-  changes.forEach(function(change) {
-    // Any time name or title change, update the greeting
-    if (change.name === 'name' || change.name === 'title') {
-      updateGreeting();
-    }
-  });
-});
-
- -

Eigens definierter Änderungstyp

- -
// A point on a 2D plane
-var point = {x: 0, y: 0, distance: 0};
-
-function setPosition(pt, x, y) {
-  // Performing a custom change
-  Object.getNotifier(pt).performChange('reposition', function() {
-    var oldDistance = pt.distance;
-    pt.x = x;
-    pt.y = y;
-    pt.distance = Math.sqrt(x * x + y * y);
-    return {oldDistance: oldDistance};
-  });
-}
-
-Object.observe(point, function(changes) {
-  console.log('Distance change: ' + (point.distance - changes[0].oldDistance));
-}, ['reposition']);
-
-setPosition(point, 3, 4);
-// Distance change: 5
-
- -

Spezifikationen

- -

Strawman proposal for ECMAScript 7.

- -

Browserunterstützung

- -
{{CompatibilityTable}}
- -
- - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatChrome("36")}}{{CompatNo}} [1]{{CompatNo}} [2]{{CompatOpera("23")}}{{CompatNo}}
-
- -
- - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatNo}}{{CompatChrome("36")}}{{CompatNo}} [1]{{CompatNo}} [2]{{CompatOpera("23")}}{{CompatNo}}
-
- -

[1]: See {{bug(800355)}}

- -

[2]: See relevant MS Edge platform status entry

- -

Siehe Auch

- - -- cgit v1.2.3-54-g00ecf