JavaScript中的Reflect.setPrototypeOf()方法用於將指定對象的原型設置為另一個對象或Null。此方法返回成功操作的布爾值。
用法:
Reflect.setPrototypeOf(obj, prototype)
參數:
- Obj:此參數保存目標對象,並用於設置原型。
- Prototype:此參數保存對象的新原型。它可以是任何對象,也可以僅僅是null。
返回值:此方法始終返回一個布爾值,該值指示是否成功完成了原型的設置。
異常:當目標不是對象時,TypeError是作為結果給出的異常。
以下示例說明了JavaScript中的Reflect.setPrototypeOf()方法:
範例1:
const object1 = {};
console.log(Reflect.setPrototypeOf(object1, Object.prototype));
console.log(Reflect.setPrototypeOf(object1, null));
const object2 = {};
console.log(Reflect.setPrototypeOf(Object.freeze(object2), null));
let object3 = {
gfg() {
return 'value';
}
}
let obj = {
geeks() {
return 'answer';
}
}
Object.setPrototypeOf(obj, object3);
console.dir(obj);
console.log(obj.geeks());
console.log(obj.gfg());
輸出:
true true false "answer" "value"
範例2:
console.log(Reflect.setPrototypeOf({}, Object.prototype) );
// It can change an object's [[Prototype]] to null.
console.log(Reflect.setPrototypeOf({}, null));
// Returns false if target is not extensible.
console.log(Reflect.setPrototypeOf(Object.freeze({}), null));
// Returns false if it cause a prototype chain cycle.
let target = {}
let proto = Object.create(target)
console.log(Reflect.setPrototypeOf(target, proto) );
var object3 = {
gfg() {
console.log(this.name + ' have fun.');
}
};
class objt {
constructor(name) {
this.name = name;
}
}
Reflect.setPrototypeOf(objt.prototype, object3);
// If you do not do this you will get
// a TypeError when you invoke speak
var val = new objt('Geeks');
val.gfg();
輸出:
true true false false "Geeks have fun."
支持的瀏覽器:下麵列出了JavaScript Reflect.setPrototypeOf()方法支持的瀏覽器:
- 穀歌瀏覽器
- Firefox
- Opera
- Safari
- Edge
相關用法
- Javascript Uint8Array.from()用法及代碼示例
- Javascript padEnd()用法及代碼示例
- Javascript Float64Array.from()用法及代碼示例
- Javascript Uint8ClampedArray.from()用法及代碼示例
- Javascript padStart()用法及代碼示例
- Javascript Int16Array from()用法及代碼示例
- Javascript Uint32Array from()用法及代碼示例
- Javascript Replace()用法及代碼示例
- Javascript Reflect.has()用法及代碼示例
- Javascript Promise.all()用法及代碼示例
- Javascript compile()用法及代碼示例
- Javascript Array from()用法及代碼示例
- Javascript hasOwnProperty()用法及代碼示例
- Javascript Array map()用法及代碼示例
- Javascript exec()用法及代碼示例
注:本文由純淨天空篩選整理自SHUBHAMSINGH10大神的英文原創作品 JavaScript | Reflect.setPrototypeOf() Method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。