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>

当我们执行上述脚本时,输出窗口将弹出,在网页上显示文本。

广告