以下內(nèi)容是引用或者借鑒別人的,自己只是做個(gè)筆記鹦肿,方便學(xué)習(xí)矗烛。理解錯(cuò)誤的地方,歡迎評(píng)論箩溃。如有侵權(quán)瞭吃,私聊我刪除,未經(jīng)允許涣旨,不準(zhǔn)作為商業(yè)用途
創(chuàng)建唯一的值歪架,沒有登記機(jī)制
-
Symbol
函數(shù)的參數(shù)是對(duì)當(dāng)前Symbol
值的key
(也叫描述description
),相同參數(shù)的Symbol
函數(shù)的返回值是不相等的
// 沒有參數(shù)的情況
let s1 = Symbol();
let s2 = Symbol();
s1 === s2 // false
// 有參數(shù)的情況
let s1 = Symbol('foo');
let s2 = Symbol('foo');
s1 === s2 // false
-
ES2019 提供了一個(gè)實(shí)例屬性
description
霹陡,直接返回Symbol
的描述肥隆。
const sym = Symbol('foo');
sym.description // "foo"
Symbol.for()
檢查給定的key
是否已經(jīng)存在吝沫,存在會(huì)用這個(gè)值吱殉,不存在會(huì)新建一個(gè)值,有登記機(jī)制
let s1 = Symbol.for('foo');
let s2 = Symbol.for('foo');
s1 === s2 // true
Symbol.keyFor()
方法返回一個(gè)已登記的 Symbol
類型值的key
let s1 = Symbol.for("foo");
Symbol.keyFor(s1) // "foo"
let s2 = Symbol("foo");
Symbol.keyFor(s2) // undefined
靜態(tài)屬性
image.png