JavaScript - Reflect.set() 方法



Reflect.set() 方法允许您设置对象的属性值。与 Object.defineProperty() 或赋值运算符不同,Reflect.set() 也可以与代理一起使用并尊重它们的处理程序。在需要确保触发处理程序的 set trap 或需要动态设置属性值的情况下,此方法非常有用。

在需要验证属性是否设置正确的情况下,Reflect.set() 方法提供了一种适应性更强、更清晰的对象属性设置方式。

语法

以下是 JavaScript Reflect.set() 方法的语法 -


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

参数

此方法接受三个参数。相同的描述如下 -

  • obj − 要设置属性的目标对象。
  • Key − 指示要保留的属性的名称。
  • value − 要设置的值。
  • receiver − 它是一个可选参数,其值是为对目标的调用提供的。

返回值

此方法返回一个 Boolean 值,该值指示属性是否已成功设置。

示例 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

在下面的示例中,我们将在数组上设置 Property。


<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>

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