handler.setPrototypeOf()
 
 
 JavaScript handler.setPrototypeOf()方法
 
 如果成功更改了[[Prototype]],则
  handler.setPrototypeOf 方法将返回布尔值true。否则,它将返回false。它是Object.setPrototypeOf()的陷阱。 
 
语法
 
 
  
   setPrototypeOf: function(target, prototype)
  
 
 
  
参数
 
 
 target:目标对象。
 
 
 prototype:该对象的新原型或为空。
 
返回值
 
 返回布尔值。
 
浏览器支持
 
 
 
   
   | Chrome | 兼容性未知 | 
 
   
   | Edge | 兼容性未知 | 
 
   
   | Firefox | 49 | 
 
   
   | Opera | 兼容性未知 | 
 
 
 
示例1 
 
 
  
   <script>
 var pro = { f:13}
 var proxy = new Proxy(pro, {
   setPrototypeOf(target, newProto) {
  return newPrototype in target;
   }
 });
 document.writeln('f' in proxy);
 //expected output: true
 </script>
  
 
 
  
 
 输出: 
 
 
示例2 
 
 
  
   <script>
 var soo={
   foo:1
 }
 var proxy = new Proxy(soo, {
   setPrototypeOf(target, newProto) {
   }
 });
 document.writeln('a' in proxy); 
 //expected output: false
 </script>
  
 
 
  
 
 输出: 
 
 
示例3 
 
 
  
   <script>
 var xyz = new Proxy({}, {
   setPrototypeOf(target, newProto) {
     if(key == "a") return true;
       return ;false
     }
   }
 ) 
 var first= ("f" in xyz)
 var last = ("g" in xyz)
 document.write(""+first)
 //expected output:false
 document.write('<br/>');
 document.write("" +last)
 //expected output: false
 </script>
  
 
 
  
 
 输出: