三分钟搞懂es6 Symbols

一、描述

Symbols是JavaScript在es6版本新引入的一种基本数据类型,其中每个从Symbol()返回的symbol值都是唯一的。

二、基本用法

  • 给user对象添加一个唯一的key
const id = Symbol('id')
let user = {
  value: '999',
  id: '001',
  [id]: 1001
}

console.log(user) // {value: "999", id: 1, Symbol(id): 1001}
console.log(user[id]) // 1001

symbol的值不能重复,但是可以修改

// 接上之前的代码
user[id] = 2002

console.log(user[id]) // 2002

三、Symbol 注册表

  • Symbol()在每次使用时返回的symbol值都是唯一的
  • Symbol.for() 方法创建的的 symbol 会被放入一个全局 symbol 注册表中
  • Symbol.keyFor()需传入一个Symbol对象,返回该对象的全局注册的Symbol值
Symbol.for("bar") === Symbol.for("bar"); // true
Symbol("bar") === Symbol("bar"); // false

const sym = Symbol.for("mario")
Symbol.keyFor(sym) // mario

const id = Symbol('id')
Symbol.keyFor(id) // undefined

END

发布了147 篇原创文章 · 获赞 58 · 访问量 34万+

猜你喜欢

转载自blog.csdn.net/momDIY/article/details/105346523