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


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


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



相關用法


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