当前位置: 首页>>代码示例>>用法及示例精选>>正文


Javascript handler.preventExtensions()用法及代码示例

JavaScript中的handler.preventExtensions()方法是Object.preventExtensions()方法的陷阱,它返回布尔值。

用法:

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

参数:此方法接受包含目标对象的单个参数target。



返回值:此方法返回一个布尔值。

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

范例1:

<script> 
const monster1 = { 
  canEvolve:true
}; 
  
const handler1 = { 
  preventExtensions(target) { 
    target.canEvolve = false; 
    Object.preventExtensions(target); 
    return true; 
  } 
}; 
  
const proxy1 = new Proxy(monster1, handler1); 
  
document.writeln(monster1.canEvolve); 
document.writeln("<br>"); 
document.writeln(Object.preventExtensions(proxy1)); 
document.writeln("<br>"); 
document.writeln(monster1.canEvolve); 
document.writeln("<br>"); 
  
const proxy = new Proxy({}, {   
   preventExtensions:function(target) {   
   Object.preventExtensions(target);   
   return !Object.isExtensible(target);   
  }   
});   
document.writeln(Object.isExtensible(proxy)); 
</script>

输出:

true
[object Object]
false
true

范例2:

<script> 
const p = new Proxy({}, { 
  preventExtensions:function(target) { 
    document.writeln('preventExtensions()'+"<br>"); 
    document.writeln(Object.preventExtensions(target)+"<br>"); 
    return true; 
  } 
}); 
  
document.writeln(Object.preventExtensions(p)+"<br>"); 
  
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);   
Object.preventExtensions(proxy);   
document.writeln("<br/>");   
document.writeln(x.first);  
</script>

输出:

preventExtensions()
[object Object]
[object Object]
false
false

支持的浏览器:handler.preventExtensions()方法支持的浏览器如下:

  • 谷歌浏览器
  • Firefox
  • Opera
  • Safari
  • Edge



相关用法

注:本文由纯净天空筛选整理自SHUBHAMSINGH10大神的英文原创作品 JavaScript | handler.preventExtensions() Method。非经特殊声明,原始代码版权归原作者所有,本译文的传播和使用请遵循“署名-相同方式共享 4.0 国际 (CC BY-SA 4.0)”协议。