From 66f8b08f904e138c19212b878b67e06c47eafbd7 Mon Sep 17 00:00:00 2001 From: athena0304 Date: Wed, 12 Sep 2018 01:07:26 +0800 Subject: [PATCH 1/6] Update article.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 错别字修正 --- 1-js/04-object-basics/03-symbol/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1-js/04-object-basics/03-symbol/article.md b/1-js/04-object-basics/03-symbol/article.md index a62e4d29b8..a4d5b9932a 100644 --- a/1-js/04-object-basics/03-symbol/article.md +++ b/1-js/04-object-basics/03-symbol/article.md @@ -161,7 +161,7 @@ let clone = Object.assign({}, user); alert( clone[id] ); // 123 ``` -这里并不矛盾,就是这样设计的。我们的想法是当我们克隆一个 object 或合并 object 时,通常希望**所有**属性被复制(包括想 `id` 这样的 Symbol)。 +这里并不矛盾,就是这样设计的。我们的想法是当我们克隆一个 object 或合并 object 时,通常希望**所有**属性被复制(包括像 `id` 这样的 Symbol)。 ````smart header="Property keys of other types are coerced to strings" 我们只能在对象中使用 string 或 symbol 作为键,其它类型转换为 String。 From 379376c77bf03224b1c67553b6880a24f2b4f5c4 Mon Sep 17 00:00:00 2001 From: athena0304 Date: Wed, 12 Sep 2018 01:33:54 +0800 Subject: [PATCH 2/6] Update article.md --- 1-js/04-object-basics/03-symbol/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1-js/04-object-basics/03-symbol/article.md b/1-js/04-object-basics/03-symbol/article.md index a4d5b9932a..9a459f8ec6 100644 --- a/1-js/04-object-basics/03-symbol/article.md +++ b/1-js/04-object-basics/03-symbol/article.md @@ -249,7 +249,7 @@ JavaScript 内部存在很多“系统” Symbol,我们可以使用它们来 - `Symbol.toPrimitive` - ...等等。 -例如,`Symbol.toPrimitive` 允许我们将对象描述为原语转换,我们很快就会看到她它的使用。 +例如,`Symbol.toPrimitive` 允许我们将对象描述为原语转换,我们很快就会看到它的使用。 当我们研究相应的语言特征时,其他 Symbol 也会变得熟悉起来。 From 243d017c1399d5ac57c1e0f33098ed2a3a0fc171 Mon Sep 17 00:00:00 2001 From: athena0304 Date: Wed, 12 Sep 2018 01:40:55 +0800 Subject: [PATCH 3/6] Update article.md --- 1-js/04-object-basics/03-symbol/article.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/1-js/04-object-basics/03-symbol/article.md b/1-js/04-object-basics/03-symbol/article.md index 9a459f8ec6..1dc93ff8f7 100644 --- a/1-js/04-object-basics/03-symbol/article.md +++ b/1-js/04-object-basics/03-symbol/article.md @@ -263,10 +263,10 @@ Symbol 总是不同的值,即使它们有相同的名称。如果我们希望 Symbol 有两个主要的使用场景: -1. “隐藏” object 属性。如果需要将属性添加到 “belongs” 另一个脚本或库的对象中,则可以创建 Symbol 并将其用作属性键。Symbol 属性不出现在 `for..in`中,因此不回偶尔列出。另外,它不会被直接访问,因为另一个脚本没有我们的符号,所以它不会偶尔干预它的操作。 +1. “隐藏” object 属性。如果需要将属性添加到 “属于” 另一个脚本或库的对象中,则可以创建 Symbol 并将其用作属性键。Symbol 属性不出现在 `for..in`中,因此不回偶尔列出。另外,它不会被直接访问,因为另一个脚本没有我们的符号,所以它不会偶尔干预它的操作。 因此我们可以使用 Symbol 属性“秘密地”将一些东西隐藏到我们需要的 object 中,但其他人不应该看到。 -2. JavaScript 使用了许多系统 Symbol,这些 Symbol 可以作为 `Symbol.*` 访问。我们可以使用它们来改变一些内置行为。例如,在本教程的后面部分,我们将使用 `Symbol.iterator` 来[迭代](info:iterable),`Symbol.toPrimitive` 来设置 [object-to-primitive 的转换](info:object-toprimitive)等等。 +2. JavaScript 使用了许多系统 Symbol,这些 Symbol 可以作为 `Symbol.*` 访问。我们可以使用它们来改变一些内置行为。例如,在本教程的后面部分,我们将使用 `Symbol.iterator` 来[迭代](info:iterable),`Symbol.toPrimitive` 来设置 [对象原始值的转换](info:object-toprimitive)等等。 -从技术上说,Symbol 不是 100% 隐藏的。有一个内置方面 [Object.getOwnPropertySymbols(obj)](mdn:js/Object/getOwnPropertySymbols) 允许我们获取所有的 Symbol。还有一个名为 [Reflect.ownKeys(obj)](mdn:js/Reflect/ownKeys) 返回**所有**键,包括 Symbol。所以它们不是真正的隐藏。但是大多数库、内置方法和语法结构都遵循一个共同的协议。而明确调用上诉方法的人可能很清楚他在做什么。 +从技术上说,Symbol 不是 100% 隐藏的。有一个内置方法 [Object.getOwnPropertySymbols(obj)](mdn:js/Object/getOwnPropertySymbols) 允许我们获取所有的 Symbol。还有一个名为 [Reflect.ownKeys(obj)](mdn:js/Reflect/ownKeys) 返回**所有**键,包括 Symbol。所以它们不是真正的隐藏。但是大多数库、内置方法和语法结构都遵循一个共同的协议。而明确调用上述方法的人可能很清楚他在做什么。 From 17ac2d019775de065c14ca0648d4084c703120c3 Mon Sep 17 00:00:00 2001 From: athena0304 Date: Wed, 12 Sep 2018 01:41:36 +0800 Subject: [PATCH 4/6] Update article.md --- 1-js/04-object-basics/03-symbol/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1-js/04-object-basics/03-symbol/article.md b/1-js/04-object-basics/03-symbol/article.md index 1dc93ff8f7..c96a2efc94 100644 --- a/1-js/04-object-basics/03-symbol/article.md +++ b/1-js/04-object-basics/03-symbol/article.md @@ -249,7 +249,7 @@ JavaScript 内部存在很多“系统” Symbol,我们可以使用它们来 - `Symbol.toPrimitive` - ...等等。 -例如,`Symbol.toPrimitive` 允许我们将对象描述为原语转换,我们很快就会看到它的使用。 +例如,`Symbol.toPrimitive` 允许我们将对象描述为原始值转换,我们很快就会看到它的使用。 当我们研究相应的语言特征时,其他 Symbol 也会变得熟悉起来。 From d7f18b171d5cc502637dc6a5fa14fe37a61a5b19 Mon Sep 17 00:00:00 2001 From: athena0304 Date: Wed, 12 Sep 2018 01:44:50 +0800 Subject: [PATCH 5/6] Update article.md --- 1-js/04-object-basics/03-symbol/article.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/1-js/04-object-basics/03-symbol/article.md b/1-js/04-object-basics/03-symbol/article.md index c96a2efc94..7eaa0a414a 100644 --- a/1-js/04-object-basics/03-symbol/article.md +++ b/1-js/04-object-basics/03-symbol/article.md @@ -1,13 +1,13 @@ # Symbol 类型 -根据规范,object 属性键只能是 String 类型或者 Symbol 类型。不是 Number,也不是 Boolean,只有 String 或 Symbol 这两种类型。 +根据规范,对象的属性键只能是 String 类型或者 Symbol 类型。不是 Number,也不是 Boolean,只有 String 或 Symbol 这两种类型。 到目前为止,我们只见过 String。现在我们来看看 Symbol 能给我们带来什么好处。 ## Symbol -"Symbol" 值表示唯一的标识符 +"Symbol" 值表示唯一的标识符。 可以使用 `Symbol()` 来创建这种类型的值: From cc406cf177cbd39a332124f695790c16c2d4431b Mon Sep 17 00:00:00 2001 From: LeviDing Date: Wed, 12 Sep 2018 08:49:35 +0800 Subject: [PATCH 6/6] Update article.md --- 1-js/04-object-basics/03-symbol/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1-js/04-object-basics/03-symbol/article.md b/1-js/04-object-basics/03-symbol/article.md index 7eaa0a414a..79a45de635 100644 --- a/1-js/04-object-basics/03-symbol/article.md +++ b/1-js/04-object-basics/03-symbol/article.md @@ -267,6 +267,6 @@ Symbol 有两个主要的使用场景: 因此我们可以使用 Symbol 属性“秘密地”将一些东西隐藏到我们需要的 object 中,但其他人不应该看到。 -2. JavaScript 使用了许多系统 Symbol,这些 Symbol 可以作为 `Symbol.*` 访问。我们可以使用它们来改变一些内置行为。例如,在本教程的后面部分,我们将使用 `Symbol.iterator` 来[迭代](info:iterable),`Symbol.toPrimitive` 来设置 [对象原始值的转换](info:object-toprimitive)等等。 +2. JavaScript 使用了许多系统 Symbol,这些 Symbol 可以作为 `Symbol.*` 访问。我们可以使用它们来改变一些内置行为。例如,在本教程的后面部分,我们将使用 `Symbol.iterator` 来[迭代](info:iterable),`Symbol.toPrimitive` 来设置[对象原始值的转换](info:object-toprimitive)等等。 从技术上说,Symbol 不是 100% 隐藏的。有一个内置方法 [Object.getOwnPropertySymbols(obj)](mdn:js/Object/getOwnPropertySymbols) 允许我们获取所有的 Symbol。还有一个名为 [Reflect.ownKeys(obj)](mdn:js/Reflect/ownKeys) 返回**所有**键,包括 Symbol。所以它们不是真正的隐藏。但是大多数库、内置方法和语法结构都遵循一个共同的协议。而明确调用上述方法的人可能很清楚他在做什么。