ES7 对于类型代表符号是什么?

ES7 对于类型代表符号是什么?

随着 JavaScript 这门语言的发展,ES7(ECMAScript 2016)引入了一些新的特性,其中之一就是类型代表符号(Symbol)。

Symbol 是 JavaScript 中的一种基本数据类型,它可以用来创建一个独一无二的值,可以用作对象属性的键名,以防止属性名的冲突。Symbol 值是通过 Symbol 函数创建的,例如:

上面的代码中,我们通过 Symbol 函数分别创建了两个 Symbol 值,symbol1 和 symbol2,其中 symbol2 的描述是可选的,用来描述该 Symbol 值的用途。

类型代表符号的一个重要应用是在对象中定义私有属性。在 JavaScript 中,对象的属性可以通过访问器(getter 和 setter)来进行读写,但是这样会暴露属性的实现细节,因此可以使用类型代表符号来隐藏属性。

例如,我们可以定义一个名为 Person 的类来表示一个人,其中包含一个私有属性 _name:

上面的代码中,我们使用类型代表符号来定义了私有属性 _name,通过访问器来读写该属性的值,外部无法直接访问 _name 属性。

除了用作对象属性的键名之外,类型代表符号还可以用来创建一些内置的 Symbol 值,例如:

  • Symbol.iterator:用来定义一个对象的默认迭代器方法;
  • Symbol.asyncIterator:用来定义一个对象的异步迭代器方法;
  • Symbol.toStringTag:用来定义一个对象的默认的 toString() 方法的返回值。

示例代码:

总结:

类型代表符号是 ES7 中引入的一种基本数据类型,可以用来创建一个独一无二的值,可以用作对象属性的键名,以防止属性名的冲突。类型代表符号的一个重要应用是在对象中定义私有属性,可以使用访问器来读写该属性的值,外部无法直接访问私有属性。除此之外,类型代表符号还可以用来创建一些内置的 Symbol 值,例如 Symbol.iterator、Symbol.asyncIterator 和 Symbol.toStringTag 等。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/656be876d2f5e1655d442910


纠错
反馈