当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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