JavaScript中的handler.setPrototypeOf()方法是Object.setPrototypeOf()方法的陷阱,它返回一個布爾值。
用法:
const p = new Proxy(target, { setPrototypeOf:function(target, prototype) { } });
參數:該方法接受上述和以下所述的兩個參數:
- target:此參數是目標對象。
- prototype:此參數是對象的新原型或null。
返回值:此方法返回一個布爾值。如果[[Prototype]]成功更改,則返回true。
以下示例說明了JavaScript中的handler.setPrototypeOf()方法:
範例1:
<script>
const handler1 = {
setPrototypeOf(gfg, gfgProto) {
gfg.geneticallyModified = true;
return false;
}
};
const gfgProto = {};
const gfg = {
geneticallyModified:false
};
const proxy1 = new Proxy(gfg, handler1);
console.log(Reflect.setPrototypeOf(proxy1, gfgProto));
console.log(gfg.geneticallyModified);
var soo={
foo:1
}
var proxy = new Proxy(soo, {
setPrototypeOf(target, newProto) {
}
});
console.log('a' in proxy);
</script>
輸出:
false true false
範例2:
<script>
const handlerThrows = {
setPrototypeOf(target, newProto) {
throw new Error('custom error');
}
};
const newProto = {}, target = {};
const p2 = new Proxy(target, handlerThrows);
document.writeln(Object.setPrototypeOf(p2, newProto));
document.writeln(Reflect.setPrototypeOf(p2, newProto));
</script>
輸出:
Error:custom error
支持的瀏覽器:handler.setPrototypeOf()方法支持的瀏覽器如下:
- 穀歌瀏覽器
- 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 | handler.setPrototypeOf() Method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。