當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Javascript handler.getOwnPropertyDescriptor()用法及代碼示例

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



相關用法


注:本文由純淨天空篩選整理自SHUBHAMSINGH10大神的英文原創作品 JavaScript | handler.getOwnPropertyDescriptor() Method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。