返回

ES6 Symbol对象

前端

ES6 Symbol对象简介

ES6 中的 Symbol 对象是一种原始数据类型,用于创建独一无二的对象属性。Symbol 对象通常用作对象属性的键值,尤其是当你想让属性是私有的时候。Symbol 对象提供了 Symbol.iterator 和 Symbol.hasInstance 等内置符号,用于表示迭代器和 instanceof 运算符。

Symbol 对象是 ES6 中新增的数据类型,它是一种基础数据类型,MDN 中的对 Symbol 类型的为:数据类型 “symbol” 是一种原始数据类型,该类型的性质在于这个类型的值可以用来创建匿名的对象属性。该数据类型通常被用作一个对象属性的键值——当你想让它是私有的时候。 symbol…

Symbol对象的特性

Symbol 对象具有以下特性:

  • Symbol 对象是独一无二的,即没有任何两个 Symbol 对象是相等的。
  • Symbol 对象是不可变的,即一旦创建,就不能再改变其值。
  • Symbol 对象是私有的,即不能在对象外访问。

Symbol对象的用途

Symbol 对象通常用作对象属性的键值,尤其是当你想让属性是私有的时候。例如,你可以使用 Symbol 对象来创建一个私有属性,用于存储敏感数据。

const symbol = Symbol();

const object = {
  [symbol]: 'secret data'
};

console.log(object[symbol]); // "secret data"

Symbol对象的内置符号

Symbol 对象提供了 Symbol.iterator 和 Symbol.hasInstance 等内置符号,用于表示迭代器和 instanceof 运算符。

  • Symbol.iterator:Symbol.iterator 内置符号用于表示迭代器。迭代器是一种对象,它可以按顺序访问集合中的元素。
  • Symbol.hasInstance:Symbol.hasInstance 内置符号用于表示 instanceof 运算符。instanceof 运算符用于判断一个对象是否属于某个类。

总结

ES6 中的 Symbol 对象是一种原始数据类型,用于创建独一无二的对象属性。Symbol 对象通常用作对象属性的键值,尤其是当你想让属性是私有的时候。Symbol 对象提供了 Symbol.iterator 和 Symbol.hasInstance 等内置符号,用于表示迭代器和 instanceof 运算符。通过阅读本文,您对 ES6 中的 Symbol 对象有了更深入的了解。