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/array/observe/index.html | 92 ---------------------- .../global_objects/array/unobserve/index.html | 86 -------------------- 2 files changed, 178 deletions(-) delete mode 100644 files/zh-cn/web/javascript/reference/global_objects/array/observe/index.html delete mode 100644 files/zh-cn/web/javascript/reference/global_objects/array/unobserve/index.html (limited to 'files/zh-cn/web/javascript/reference/global_objects/array') diff --git a/files/zh-cn/web/javascript/reference/global_objects/array/observe/index.html b/files/zh-cn/web/javascript/reference/global_objects/array/observe/index.html deleted file mode 100644 index 7c2dcc8474..0000000000 --- a/files/zh-cn/web/javascript/reference/global_objects/array/observe/index.html +++ /dev/null @@ -1,92 +0,0 @@ ---- -title: Array.observe() -slug: Web/JavaScript/Reference/Global_Objects/Array/observe -tags: - - JavaScript - - 实验性 - - 数组 - - 方法 - - 过时的 -translation_of: Archive/Web/JavaScript/Array.observe ---- -
{{JSRef}}{{obsolete_header}}
- -

Array.observe() 方法用于异步监视数组发生的变化,类似于针对对象的 {{jsxref("Object.observe()")}} 。当数组的值发生变化时,它按发生顺序提供了一个变化流。与 Object.observe() 类似,它由如下可接受的变化类型列表["add"、"update"、"delete"、"splice"]触发。

- -

语法

- -
Array.observe(arr, callback)
- -

参数

- -
-
arr
-
用于被监视的数组
-
callback
-
每当数组发生变化时,使用如下参数调用该函数: -
-
changes
-
用于表示变化的对象数组。每个变化对象的属性如下: -
    -
  • name: 变化的属性名。
  • -
  • object: 变化后的数组。
  • -
  • type: 用于表示变化类型的字符串。其取值为"add"、"update"、"delete""splice"之一。
  • -
  • oldValue: 仅用于"update""delete"类型。变化之前的取值。
  • -
  • index: 仅用于"splice"类型。变化发生所在索引。
  • -
  • removed: 仅用于"splice"类型。被删除元素组成的数组。
  • -
  • addedCount: 仅用于"splice"类型。被添加的元素数量。
  • -
-
-
-
-
- -

描述

- -

每次 arr 发生任何变化时,回调函数将被调用,调用参数为所有变化按发生顺序组成的数组。

- -
-

通过Array方法如 Array.prototype.pop( ) 触发的变化将被报告成"splice"变化,长度不变但索引赋值发生变化的将被报告成"update"变化。

-
- -

示例

- -

Example: Logging different change types

- -
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'], addedCount: 3}]
-
- -

标准规范

- -

Strawman proposal specification.

- -

浏览器支持

- -
-
- - -

{{Compat("javascript.builtins.Array.observe")}}

-
-
- -

相关内容

- - diff --git a/files/zh-cn/web/javascript/reference/global_objects/array/unobserve/index.html b/files/zh-cn/web/javascript/reference/global_objects/array/unobserve/index.html deleted file mode 100644 index 90678a1081..0000000000 --- a/files/zh-cn/web/javascript/reference/global_objects/array/unobserve/index.html +++ /dev/null @@ -1,86 +0,0 @@ ---- -title: Array.unobserve() -slug: Web/JavaScript/Reference/Global_Objects/Array/unobserve -translation_of: Archive/Web/JavaScript/Array.unobserve ---- -
{{JSRef}} {{non-standard_header}}
- -

Array.unobserve()方法用来移除{{jsxref("Array.observe()")}}设置的所有观察者。

- -

语法

- -
Array.unobserve(arr, callback)
- -

参数

- -
-
arr
-
停止观察的数组。
-
 
-
callback回调
-
需要停止的array arr每次改变都会调用的函数引用。
-
- -

描述

- -

Array.unobserve() 方法因为要移除观察者,所以应该在{{jsxref("Array.observe()")}}调用后调用。

- -

回调函数应该是一个函数的引用并且不能是匿名函数, 因为这个函数需要用来移除前面的观察者, 如果用匿名函数是没有用的,将不能移除任何观察者。

- -

例子

- -

停止观察一个数组

- -
var arr = [1, 2, 3];
-
-var observer = function(changes) {
-  console.log(changes);
-}
-
-Array.observe(arr, observer);
-​
-arr.push(4);
-// [{type: "splice", object: <arr>, index: 3, removed:[], addedCount: 1}]
-
-Array.unobserve(arr, observer);
-
-arr.pop();
-// The callback wasn't called
- -

使用匿名函数

- -
var persons = ['Khalid', 'Ahmed', 'Mohammed'];
-
-Array.observe(persons, function (changes) {
-  console.log(changes);
-});
-
-persons.shift();
-// [{type: "splice", object: <arr>, index: 0, removed: [ "Khalid" ], addedCount: 0 }]
-
-Array.unobserve(persons, function (changes) {
-  console.log(changes);
-});
-
-persons.push('Abdullah');
-// [{type: "splice", object: <arr>, index: 2, removed: [], addedCount: 1 }]
-// The callback will always be called
-
- -

浏览器兼容性

- -
-
- - -

{{Compat("javascript.builtins.Array.unobserve")}}

-
-
- -

相关内容

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