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