JavaScript - Reflect.construct() 方法



Reflect.construct() 方法用于创建具有给定参数集的构造函数的实例。它是 Reflect 对象的一部分,Reflect 对象提供了多种静态方法来操作对象及其属性。当你在编码时需要动态构建构造函数的实例而不知道构造函数的名称时,Reflect.construct() 方法非常有用。

语法

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


 Reflect.construct(target, argumentsList, newTarget)

参数

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

  • target − 它是对 target 函数的调用。
  • argumentsList − 它是一个类似对象的数组,指定了应该用来调用目标的参数。
  • newTarget − 它是一个可选参数,用于要使用的原型的构造函数。

返回值

此方法返回 target 的新实例。

示例 1

让我们看看下面的示例,我们将在其中创建类的实例。


<html>
   <style>
      body {
         font-family: verdana;
         color: #DE3163;
      }
   </style>
   <body>
      <script>
         class x {
            constructor(a) {
               this.a = a;
            }
         }
         const instance = Reflect.construct(x, ['WELCOME']);
         document.write(instance.a);
      </script>
   </body>
</html>

如果我们执行上述程序,它将在网页上显示文本。

示例 2

考虑另一个场景,我们将使用 array prototype 创建类的实例。


<html>
   <style>
      body {
         font-family: verdana;
         color: #DE3163;
      }
   </style>
   <body>
      <script>
         class x {
            constructor(a) {
               this.a = a;
            }
         }
         const instance = Reflect.construct(x, ['qikepu'], Array);
         document.write(instance instanceof Array, " < br > "); 
               document.write(instance.a);
      </script>
   </body>
</html>

在执行上述脚本时,它将在网页上显示文本。

示例 3

在下面的示例中,我们将创建一个不带任何参数的类实例。


<html>
   <style>
      body {
         font-family: verdana;
         color: #DE3163;
      }
   </style>
   <body>
      <script>
         class x {
            constructor() {
               this.Company = 'Maserati';
            }
         }
         const car = Reflect.construct(x, []);
         document.write(JSON.stringify(car));
      </script>
   </body>
</html>

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