在线文档教程

Reflect.construct

Reflect.construct

Reflect.construct()方法的行为有点像 new操作符构造函数 , 相当于运行 new target(...args).

语法

Reflect.construct(target, argumentsList[, newTarget])

参数

target被运行的目标函数argumentsList调用构造函数的数组或者伪数组newTarget可选该参数为构造函数, 参考new.target操作符,如果没有newTarget参数, 默认和target一样

返回值

给定目标的新实例,通过调用它(或者newTarget,如果存在)作为具有给定参数的构造函数创建的。

异常

抛出TypeError,异常, 如果target或者newTarget不是构造函数

描述

Reflect.construct允许你使用可变的参数来调用构造函数

var obj = new Foo(...args var obj = Reflect.construct(Foo, args

示例

使用Reflect.construct()

var d = Reflect.construct(Date, [1776, 6, 4] d instanceof Date; // true d.getFullYear( // 1776

使用newTarget 参数

有关子分类和new.target运算符的更多信息,请另请参阅类。

function someConstructor() {} var result = Reflect.construct(Array, [], someConstructor Reflect.getPrototypeOf(result // someConstructor.prototype Array.isArray(result // true

规范

SpecificationStatusComment
ECMAScript 2015 (6th Edition, ECMA-262)The definition of 'Reflect.construct' in that specification.StandardInitial definition.
ECMAScript Latest Draft (ECMA-262)The definition of 'Reflect.construct' in that specification.Draft

浏览器兼容性

FeatureChromeEdgeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support491242 (42)No support3610

FeatureAndroidChrome for AndroidEdgeFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic supportNo support49(Yes)42.0 (42)No supportNo support10