JavaScript - Symbol.valueOf() 方法



JavaScript Symbol.valueOf() 方法可以用來獲取 Symbol 物件的原始值。Symbol 是一種不可變的、獨特的資料型別,用作唯一識別符號。為了避免命名衝突,它們被用作物件屬性的鍵。

當遇到 Symbol 物件並且操作需要原始值時,它會自動呼叫 valueOf() 方法。此方法可用於需要原始值的場景,例如算術運算或比較,因為它返回與 Symbol 物件關聯的原始值。

語法

以下是 JavaScript Symbol.valueOf() 方法的語法:

valueOf()

引數

此屬性不接受任何引數。

返回值

此屬性返回指定 Symbol 物件的原始值。

示例

示例 1

讓我們來看下面的例子,我們將比較兩個 Symbol 並檢查輸出。

<html>
   <style>
      body {
         font-family: verdana;
         color: #DE3163;
      }
   </style>
   <body>
      <script>
         const x = Symbol('TP');
         const y = Symbol('tp');
         document.write(x.valueOf() === y.valueOf());
      </script>
   </body>
</html>

如果我們執行上面的程式,它將在網頁上顯示 false,因為即使看起來相似,Symbol 也是唯一的。

示例 2

考慮另一個例子,我們將使用 Symbol.valueOf() 方法與 Map。

<html>
   <style>
      body {
         font-family: verdana;
         color: #DE3163;
      }
   </style>
   <body>
      <script>
         const x = Symbol('TP');
         const map = new Map();
         map.set(x, 'WELCOME');
         document.write(map.get(x).valueOf());
      </script>
   </body>
</html>

執行上述指令碼後,它將在網頁上顯示文字。

示例 3

在下面的例子中,我們將使用 Symbol.valueOf() 併為類分配一個唯一值。即使建立了新的例項,它也會返回它自己的值。

<html>
   <style>
      body {
         font-family: verdana;
         color: #DE3163;
      }
   </style>
   <body>
      <script>
         class x {
            constructor() {
               this[Symbol.valueOf()] = 'TutorialsPoint';
            }
         }
         const a = new x();
         document.write(a[Symbol.valueOf()]);
      </script>
   </body>
</html>

當我們執行指令碼時,它將在網頁上顯示文字。

廣告