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