當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。