handler.preventExtensions()
 
 
 JavaScript handler.preventExtensions()方法
 
 
  handler.preventExtensions()方法用于捕获Object.preventExtensions方法。如果在对象上禁止扩展,则无法添加新属性。
 
语法
 
 
  
   preventExtensions: function(target)
  
 
 
  
参数
 
 
 target:目标对象。
 
返回值
 
 返回布尔值。
 
浏览器支持
 
 
 
   
   | Chrome | 49 | 
 
   
   | Edge | 12 | 
 
   
   | Firefox | 22 | 
 
   
   | Opera | 36 | 
 
 
 
示例1 
 
 
  
   <script>
 const proxy = new Proxy({}, {
   preventExtensions: function(target) {
    Object.preventExtensions(target);
     return !Object.isExtensible(target);
   }
 });
 document.writeln(Object.isExtensible(proxy));
 //expected output:true
 </script>
  
 
 
  
 
 输出: 
 
 
示例2 
 
 
  
   <script>
 const proxy1 = new Proxy({}, {
   preventExtensions: function(target) {
     Object.preventExtensions(target);
     return !Object.isExtensible(target);
   }
 });
 document.writeln(Object.isExtensible(proxy1));
 //expected output: true 
 document.writeln('<br/>');
 document.writeln(Object.preventExtensions(proxy1));
 // Object.preventExtensions prevent of object to access.
 //expected output: [object Object] 
 document.writeln('<br/>');
 document.writeln(Object.isExtensible(proxy1));
 //expected output: false
 </script>
  
 
 
  
 
 输出: 
 
 
  
   
    true
 [object Object]
 false
  
  
 
   
  
示例3 
 
 
  
   <script>
 var x = {
   first: false
 };
 var y ={
   preventExtensions(target) {
     target.canEvolve = false;
     Object.preventExtensions(target);
     return true;
   }
 };
 var proxy = new Proxy(x, y);
 document.writeln(x.first);
 // expected output: false
 Object.preventExtensions(proxy);
 document.writeln("<br/>");
 document.writeln(x.first);
 // expected output: false
 </script>
  
 
 
  
 
 输出: