JavaScript中的Reflect.construct()方法用于调用新目标。它还提供了添加的选项来指定其他原型。
用法:
Reflect.construct(target, argumentsList, newTarget)
参数:此方法接受上述和以下所述的三个参数:
- target:此参数是将要调用的目标函数。
- ArgumentsList:此参数是一个array-like对象,用于指定应调用目标的参数。
- newTarget:它是一个可选参数。应该使用其原型的构造函数。
返回值:此方法返回目标的新实例。
异常:当目标不是构造函数时,TypeError是作为结果给出的异常。
以下示例说明了JavaScript中的Reflect.construct()方法:
范例1:
function func1(a, b, c) {
this.sum = a + b + c;
}
const args = [1, 2, 3];
const object1 = new func1(...args);
const object2 = Reflect.construct(func1, args);
console.log(object2.sum);
console.log(object1.sum);
function func2(a, b, c) {
this.sum = a + b + c;
}
const args2 = [1, 4, 3];
const args3 = [1, 2, 3];
const object3 = new func1(...args);
const object4 = Reflect.construct(func2, args2);
console.log(object4.sum);
console.log(object3.sum);
输出:
6 6 8 6
范例2:
function OneClass() {
this.name = 'one'
}
function OtherClass() {
this.name = 'other'
}
const args=[1, 2, 3];
let obj1 = Reflect.construct(OneClass, args, OtherClass)
let obj2 = Object.create(OtherClass.prototype)
OneClass.apply(obj2, args)
console.log(obj1.name)
console.log(obj2.name)
console.log(obj1 instanceof OneClass)
console.log(obj2 instanceof OneClass)
console.log(obj1 instanceof OtherClass)
console.log(obj2 instanceof OtherClass)
输出:
"one" "one" false false true true
支持的浏览器:下面列出了JavaScript Reflect.apply()方法支持的浏览器:
- 谷歌浏览器
- IE浏览器
- Firefox
- Opera
- Safari
- Edge
相关用法
- Javascript padStart()用法及代码示例
- Javascript Int8Array from()用法及代码示例
- Javascript Reflect.get()用法及代码示例
- Javascript Reflect.has()用法及代码示例
- Javascript Unit16Array.from()用法及代码示例
- Javascript handler.get()用法及代码示例
- Javascript Int16Array from()用法及代码示例
- Javascript Uint8Array.from()用法及代码示例
- Javascript hasOwnProperty()用法及代码示例
- Javascript compile()用法及代码示例
- Javascript Uint32Array from()用法及代码示例
- Javascript Array from()用法及代码示例
- Javascript Array.from()用法及代码示例
- Javascript handler.has()用法及代码示例
- Javascript exec()用法及代码示例
注:本文由纯净天空筛选整理自SHUBHAMSINGH10大神的英文原创作品 JavaScript | Reflect.construct() Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。