JavaScript - Reflect.construct() 方法



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

语法

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

Reflect.construct(target, argumentsList, newTarget)

参数

此方法接受三个参数。如下所述:

  • target − 目标函数的调用。

  • argumentsList − 一个类似数组的对象,指定应使用哪些参数调用目标。

  • newTarget − 可选参数,用于指定要使用其原型的构造函数。

返回值

此方法返回目标的新实例。

示例

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

考虑另一个场景,我们将使用数组原型创建一个类的实例。

<html>
   <style>
      body {
         font-family: verdana;
         color: #DE3163;
      }
   </style>
   <body>
      <script>
         class x {
            constructor(a) {
               this.a = a;
            }
         }
         const instance = Reflect.construct(x, ['TutorialsPoint'], 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>

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

广告