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


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

JavaScript中的handler.setPrototypeOf()方法是Object.setPrototypeOf()方法的陷阱,它返回一個布爾值。

用法:

const p = new Proxy(target, {
  setPrototypeOf:function(target, prototype) {
  }
});

參數:該方法接受上述和以下所述的兩個參數:



  • target:此參數是目標對象。
  • prototype:此參數是對象的新原型或null。

返回值:此方法返回一個布爾值。如果[[Prototype]]成功更改,則返回true。

以下示例說明了JavaScript中的handler.setPrototypeOf()方法:

範例1:

<script> 
const handler1 = { 
  setPrototypeOf(gfg, gfgProto) { 
    gfg.geneticallyModified = true; 
    return false; 
  } 
}; 
  
const gfgProto = {}; 
const gfg = { 
  geneticallyModified:false
}; 
  
const proxy1 = new Proxy(gfg, handler1); 
console.log(Reflect.setPrototypeOf(proxy1, gfgProto)); 
console.log(gfg.geneticallyModified); 
  
var soo={   
  foo:1   
}   
var proxy = new Proxy(soo, {   
  setPrototypeOf(target, newProto) {   
  }   
});   
console.log('a' in proxy);  
</script>

輸出:

false
true
false

範例2:

<script> 
const handlerThrows = { 
    setPrototypeOf(target, newProto) { 
        throw new Error('custom error'); 
    } 
};  
  
const newProto = {}, target = {}; 
  
const p2 = new Proxy(target, handlerThrows); 
document.writeln(Object.setPrototypeOf(p2, newProto));   
document.writeln(Reflect.setPrototypeOf(p2, newProto)); 
</script>

輸出:

Error:custom error

支持的瀏覽器:handler.setPrototypeOf()方法支持的瀏覽器如下:

  • 穀歌瀏覽器
  • Firefox
  • Opera
  • Safari
  • Edge



相關用法


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