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


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


JavaScript中的handler.get()方法是獲取屬性值的陷阱。

用法:

const p = new Proxy(target, {
  get:function(target, property, receiver) {
  }
});

參數:此方法接受上述和以下所述的三個參數:



  • Target:此參數保存目標對象。
  • Property:此參數保存要獲取的屬性的名稱。
  • Receiver:此參數保存代理或從代理繼承的對象。

返回值:此方法返回任何值。

以下示例說明了JavaScript中的handler.get()方法:

範例1:

<script> 
const monster1 = { 
  string:'Geeksforgeeks', 
  num:334 
}; 
  
const handler1 = { 
  get:function(target, prop, receiver) { 
    if (prop === 'string') { 
      return `${target.string.substr(0, 8)} ... Best portal!`; 
    } else { 
      return Reflect.get(...arguments); 
    } 
  } 
}; 
  
const proxy1 = new Proxy(monster1, handler1); 
  
console.log(proxy1.num); 
console.log(proxy1.string); 
console.log(proxy1.numstring); 
  
const obj = new Proxy({}, { 
  get:function(target, property, receiver) { 
    console.log('Property:' + property); 
    return 56.56; 
  } 
}); 
  
console.log(obj.value); 
</script>

輸出:

334
"Geeksfor ... Best portal!"
undefined
"Property:value"
56.56

範例2:

<script> 
const obj = {}; 
Object.defineProperty(obj, 'a', {  
  configurable:false,  
  enumerable:false,  
  value:10,  
  writable:false 
}); 
  
const p = new Proxy(obj, { 
  get:function(target, property) { 
    return 10; 
  } 
}); 
  
console.log(p.a); 
  
var datalist = {    
  "vala":32, "valb":7 }   
var get = new Proxy(   
  datalist,  {   
    get:function(y, idx) {   
         return y[idx] * 11    
    }     
  }   
)   
    
for(var z in get) {   
  console.log(z +":"+ get[z])   
}   
</script>

輸出:

10
"vala:352"
"valb:77"

支持的瀏覽器:handler.get()方法支持的瀏覽器如下:

  • 穀歌瀏覽器
  • Firefox
  • Opera
  • Safari
  • Edge



相關用法


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