JavaScript - Reflect.set() 方法



Reflect.set() 方法允許您設定物件屬性的值。與Object.defineProperty() 或賦值運算子不同,Reflect.set() 也適用於代理並尊重其處理程式。此方法在需要確保觸發處理程式的 set 陷阱或需要動態設定屬性值的情況下非常有用。

在需要驗證屬性是否已正確設定的情況下,Reflect.set() 方法提供了一種更靈活、更清晰的設定物件屬性的方法。

語法

以下是 JavaScript Reflect.set() 方法的語法:

Reflect.set(obj, Key, value, receiver) 

引數

此方法接受三個引數。下面描述了這些引數:

  • obj - 要在其上設定屬性的目標物件。

  • key - 指示要儲存屬性的名稱。

  • value - 要設定的值。

  • receiver - 這是一個可選引數,其值將提供給目標呼叫的值。

返回值

此方法返回一個布林值,指示屬性是否成功設定。

示例

示例 1

讓我們來看下面的例子,我們將使用 Reflect.set() 方法來設定物件的屬性。

<html>
   <style>
      body {
         font-family: verdana;
         color: #DE3163;
      }
   </style>
   <body>
      <script>
         const x = {};
         Reflect.set(x, 'val', 12345);
         document.write(x.val);
      </script>
   </body>
</html>

如果我們執行上述程式,它將在網頁上顯示文字。

示例 2

考慮另一個場景,我們將使用符號作為屬性鍵。

<html>
   <style>
      body {
         font-family: verdana;
         color: #DE3163;
      }
   </style>
   <body>
      <script>
         const x = {};
         const y = Symbol();
         Reflect.set(x, y, 'Welcome');
         document.write(x[y]);
      </script>
   </body>
</html>

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

示例 3

在下面的例子中,我們將設定陣列的屬性。

<html>
   <style>
      body {
         font-family: verdana;
         color: #DE3163;
      }
   </style>
   <body>
      <script>
         let x = ['Lion', 'Tiger', 'Deer'];
         Reflect.set(x, 1, 'Elephant');
         document.write(JSON.stringify(x));
      </script>
   </body>
</html>

當我們執行上述指令碼時,輸出視窗將彈出,在網頁上顯示文字。

廣告