JavaScript中的handler.set()方法是用於設置屬性值的陷阱。此方法返回一個布爾值。
用法:
const p = new Proxy(target, { set:function(target, property, value, receiver) { } });
參數:此方法接受上述和以下所述的四個參數:
- target:此參數保存目標對象。
- property:此參數保存屬性的名稱或符號。
- value:此參數保存屬性的新值。
- receiver:此參數保存分配最初指向的對象。
返回值:此方法始終返回布爾值。
以下示例說明了JavaScript中的handler.set()方法:
範例1:
function gfg() {
this.users = "Millions";
}
const handler1 = {
set(obj, prop, value) {
if ((prop === 'users') && ((value % 2) !== 0)) {
console.log('GEEKSFORGEEKS:Computer Science Portal');
} else {
return Reflect.set(...arguments);
}
}
};
const gfg1 = new gfg();
const proxy1 = new Proxy(gfg1, handler1);
proxy1.users = 1;
console.log(proxy1.users);
輸出:
"GEEKSFORGEEKS:Computer Science Portal" "Millions"
範例2:
const p = new Proxy({}, {
set:function(target, prop, value, receiver) {
target[prop] = value;
console.log('property set:' + prop + ' = ' + value);
return true;
}
})
console.log('a' in p);
p.a = 10;
console.log('a' in p);
console.log(p.a);
var x = { foo:1 };
var proxy = new Proxy(x, {
set:function(target, name, value, proxy) {
target[name] = value+" --> "+ value.toUpperCase();
}
});
proxy.foo = 'geeksforgeeks';
console.log(x.foo);
輸出:
false "property set:a = 10" true 10 "geeksforgeeks --> GEEKSFORGEEKS"
支持的瀏覽器:handler.set()方法支持的瀏覽器如下所示。
- 穀歌瀏覽器
- Firefox
- Opera
- Safari
- Edge
相關用法
- Javascript padStart()用法及代碼示例
- Javascript Float32Array.from()用法及代碼示例
- Javascript Float64Array.from()用法及代碼示例
- Javascript exec()用法及代碼示例
- Javascript Reflect.get()用法及代碼示例
- Javascript hasOwnProperty()用法及代碼示例
- Javascript Reflect.has()用法及代碼示例
- Javascript Sort()用法及代碼示例
- Javascript padEnd()用法及代碼示例
- Javascript Replace()用法及代碼示例
- Javascript Reflect.set()用法及代碼示例
- Javascript compile()用法及代碼示例
- Javascript Int16Array from()用法及代碼示例
- Javascript Uint32Array from()用法及代碼示例
- Javascript Int8Array from()用法及代碼示例
注:本文由純淨天空篩選整理自SHUBHAMSINGH10大神的英文原創作品 JavaScript | handler.set() Method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。