js的 symbol

58 阅读1分钟

在 es6中引入了一个新的数据类型 symbol。记录一下这个类型的特性,方便后续使用

  1. 这是一个基本数据类型。
  2. 使用symbol 方法调用生成的数据用于是唯一的。
  3. 不能使用 new 关键字
  4. 对象 的属性 key 为 symbol类型的 数据是不可以被枚举的

使用场景

  • 定义对象的私有属性
function createPeople(name, age) {
    const \_age = Symbol("Age");
    return {name, getAge: function() {return this\[\_age];}, \[\_age]: age};
}
  • 定义对象的唯一属性
const name = Symbol('name');
const obj = { [name]: 'Z_haha', }
  • 作为常量使用
const tabTypes = { 
    basic: Symbol(),
    super: Symbol(), 
}
if (type === tabTypes.basic) 
{ 
    return <div>basic tab</div> 
}
if (type === tabTypes.super) {
    return <div>super tab</div> 
}