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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。