前言
研究了下 Symbol
的實際用處,在此紀錄一下。
Private
Symbol 可讓物件有 Private
屬性,讓 Symbol 在遍歷的情況下不出現。
若需要取得 Symbol 可以透過 getOwnPropertySymbols
。
Unique
每一個 Symbol 都是獨立的。
像 Object
一樣,即使兩個完全相同的 Object 但由於 reference
的不同而不同,因此可以藉由此特性來避免屬性衝突的問題。
Global
可以註冊 Symbol 在整個環境裡,如此一來同一個屬性的 Symbol 只會有同一個。
Symbol.for()
會查看有沒有該屬性的 Symbol 存在,有就返回該 Symbol , 無則註冊一個。