From 46981f6b9ae4acbbbb474322b1c3ab04ab916c34 Mon Sep 17 00:00:00 2001 From: ruanyf Date: Mon, 21 Jan 2019 00:41:13 +0800 Subject: [PATCH] =?UTF-8?q?docs(class):=20edit=20=E7=A7=81=E6=9C=89?= =?UTF-8?q?=E5=B1=9E=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/class.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/docs/class.md b/docs/class.md index 82ab1bd..55e0c7c 100644 --- a/docs/class.md +++ b/docs/class.md @@ -776,7 +776,16 @@ export default class myClass{ }; ``` -上面代码中,`bar`和`snaf`都是`Symbol`值,导致第三方无法获取到它们,因此达到了私有方法和私有属性的效果。 +上面代码中,`bar`和`snaf`都是`Symbol`值,一般情况下无法获取到它们,因此达到了私有方法和私有属性的效果。但是也不是绝对不行,`Reflect.ownKeys()`依然可以拿到它们。 + +```javascript +const inst = new myClass(); + +Reflect.ownKeys(myClass.prototype) +// [ 'constructor', 'foo', Symbol(bar) ] +``` + +上面代码中,Symbol 值的属性名依然可以从类的外部拿到。 ### 私有属性的提案