書名: TypeScript入門與實戰作者名: 鐘勝平編著本章字數: 335字更新時間: 2021-01-15 15:35:57
3.3.6 Symbol
Symbol是ECMAScript 2015新引入的原始類型。Symbol值有一個重要特征,那就是每一個Symbol值都是唯一的且不可改變的。Symbol值的主要應用場景是作為對象的屬性名。
Symbol的設計初衷是用來實現對象的私有屬性,但實際上Symbol并不能實現真正意義上的私有屬性。JavaScript還是提供了一些方法允許程序去訪問Symbol屬性。雖然Symbol無法實現絕對的私有屬性,但是它確實有助于緩解屬性命名沖突問題。
3.3.6.1 Symbol()
JavaScript提供了一個全局的“Symbol()”函數來創建Symbol類型的值。我們可以將“Symbol()”函數想象成GUID(全局唯一標識符)的生成器,每次調用“Symbol()”函數都會生成一個完全不同的Symbol值。示例如下:
01 const sym = Symbol(); 02 const obj = { [sym]: 'some value' }; 03 obj[sym]; // 'some value'
3.3.6.2 Well-Known Symbol
JavaScript內置了一些所謂的Well-Known Symbol常量。這些Symbol常量用作對象屬性名,它們的功能是定制對象的特定行為。在ECMAScript 2015規范中一共定義了11個Well-Known Symbol常量,如表3-1所示。
推薦閱讀
- Unity 2020 By Example
- Objective-C Memory Management Essentials
- Beginning C++ Game Programming
- Hadoop+Spark大數據分析實戰
- 薛定宇教授大講堂(卷Ⅳ):MATLAB最優化計算
- The DevOps 2.4 Toolkit
- Working with Odoo
- Android系統原理及開發要點詳解
- Mastering Business Intelligence with MicroStrategy
- Python爬蟲、數據分析與可視化:工具詳解與案例實戰
- Learning Hadoop 2
- HoloLens與混合現實開發
- Python青少年趣味編程
- Flink入門與實戰
- Wearable:Tech Projects with the Raspberry Pi Zero