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