三分鐘搞懂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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章