Javascript中的handler.getOwnPropertyDescriptor()方法是Object.getOwnPropertyDescriptor()方法的陷阱。如果屬性作為目標對象的不可配置的自身屬性存在,則不能將其報告為不存在。
用法:
const p = new Proxy(target, { getOwnPropertyDescriptor:function(target, prop) { } });
參數:該方法接受上述和以下所述的兩個參數:
- Target:此參數是目標對象。
- Prop:此參數是應檢索其描述的屬性的名稱。
返回值:此方法返回一個對象或未定義。
以下示例說明了JavaScript中的handler.getOwnPropertyDescriptor()方法:
範例1:
<script>
const monster1 = {
num:4
};
const handler1 = {
getOwnPropertyDescriptor(target, prop) {
console.log(`Type:${prop}`);
return { configurable:true, enumerable:true, value:5 };
}
};
const proxy1 = new Proxy(monster1, handler1);
console.log(Object.getOwnPropertyDescriptor(proxy1, 'num').value);
console.log(Object.getOwnPropertyDescriptor(proxy1, 'bool').enumerable);
</script>
輸出:
> "Type:num" > 5 > "Type:bool" > true
範例2:
<script>
const p = new Proxy({ VAL:20}, {
getOwnPropertyDescriptor:function(target, prop) {
console.log('Property:' + prop);
return { configurable:true, enumerable:true, value:10 };
}
});
console.log(Object.getOwnPropertyDescriptor(p, 'VAL').value);
const obj = { a:10 };
Object.preventExtensions(obj);
const pval = new Proxy(obj, {
getOwnPropertyDescriptor:function(target, prop) {
return undefined;
}
});
console.log(Object.getOwnPropertyDescriptor(pval));
</script>
輸出:
> "Property:VAL" > 10 > undefined
支持的瀏覽器:handler.getOwnPropertyDescriptor()方法支持的瀏覽器如下:
- 穀歌瀏覽器
- 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.getOwnPropertyDescriptor() Method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。