静态 Reflect.construct() 方法允许使用可变数量的参数调用构造函数。它还提供了指定不同原型的附加选项。
用法
Reflect.construct(target, argumentsList[, newTarget])
参数
target: 它是要调用的目标函数。
argumentsList: 它是一个 array-like 对象,指定应使用哪个目标调用的参数。
newTarget: 它是一个应该使用其原型的构造函数。另请参阅 new.target 运算符。如果 newTarget 不存在,它将被视为一个目标。
返回
此方法返回目标的新实例(或 newTarget 如果存在),由目标初始化为具有给定参数的构造函数。
异常
如果 target 或 newTarget 不是构造函数,则此异常将引发 TypeError。
例子1
const a = new Array(1,2,3);
const b = Reflect.construct ( Array, [1,2,3] );
console.log(a);
console.log(b);
Output:
[1, 2, 3] [1, 2, 3]
例子2
function func1(a, b, c) {
this.sum = a + b + c;
}
const args = [1, 2, 3];
const object1 = new func1(...args);
console.log(object1.sum);
Output:
6
例子3
function func1(a, b, c) {
this.sum = a + b + c;
}
function func2(a, b, c) {
this.sum = a + b + c;
}
const args2 = [1, 4, 3];
const args = [1, 2, 3];
const object1 = new func1(...args);
const object2 = Reflect.construct(func2, args2);
console.log(object2.sum);
console.log(object1.sum);
Output:
8 6
相关用法
- JavaScript Reflect.get()用法及代码示例
- JavaScript Reflect.ownKeys()用法及代码示例
- JavaScript Reflect.getPrototypeOf()用法及代码示例
- JavaScript Reflect.apply()用法及代码示例
- JavaScript Reflect.defineProperty()用法及代码示例
- JavaScript Reflect.has()用法及代码示例
- JavaScript Reflect.set()用法及代码示例
- JavaScript Reflect.getOwnPropertyDescriptor()用法及代码示例
- JavaScript Reflect.setPrototypeOf()用法及代码示例
- JavaScript Reflect.deleteProperty()用法及代码示例
- JavaScript Reflect.preventExtensions()用法及代码示例
- JavaScript Reflect.isExtensible()用法及代码示例
- JavaScript Uint8Array.of()用法及代码示例
- JavaScript BigInt.prototype.toString()用法及代码示例
- JavaScript DataView.getInt16()用法及代码示例
- JavaScript Symbol.keyFor()用法及代码示例
- JavaScript handler.has()用法及代码示例
- JavaScript JSON.stringify()用法及代码示例
- JavaScript Symbol.split属性用法及代码示例
- JavaScript Function.displayName属性用法及代码示例
注:本文由纯净天空筛选整理自 JavaScript Reflect.construct() Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。