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
相關用法
- Javascript padStart()用法及代碼示例
- Javascript Int8Array from()用法及代碼示例
- Javascript Reflect.get()用法及代碼示例
- Javascript Reflect.has()用法及代碼示例
- Javascript Unit16Array.from()用法及代碼示例
- Javascript Int16Array from()用法及代碼示例
- Javascript Uint8Array.from()用法及代碼示例
- Javascript hasOwnProperty()用法及代碼示例
- Javascript compile()用法及代碼示例
- Javascript Uint32Array from()用法及代碼示例
- Javascript Array from()用法及代碼示例
- Javascript Array.from()用法及代碼示例
- Javascript handler.has()用法及代碼示例
- Javascript exec()用法及代碼示例
- Javascript Int32Array.from()用法及代碼示例
注:本文由純淨天空篩選整理自SHUBHAMSINGH10大神的英文原創作品 JavaScript | handler.get() Method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。