当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Javascript Reflect.construct()用法及代码示例


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



相关用法


注:本文由纯净天空筛选整理自SHUBHAMSINGH10大神的英文原创作品 JavaScript | Reflect.construct() Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。