📜  JavaScript | Reflect.preventExtensions() 方法

📅  最后修改于: 2022-05-13 01:56:33.236000             🧑  作者: Mango

JavaScript | Reflect.preventExtensions() 方法

Javascript 中的Reflect.preventExtensions()方法用于防止将来对对象进行扩展,这意味着防止向对象添加新属性。
句法:

Reflect.preventExtensions( obj )  

参数:此方法接受如上所述和如下所述的单个参数:

  • Obj:此参数保存目标对象,用于防止扩展。

返回值:该方法返回布尔值。它返回 true 以成功阻止扩展。否则,返回 false。
异常:当目标不是对象时,TypeError 是作为结果给出的异常。
下面的示例说明了 JavaScript 中的Reflect.preventExtensions() 方法
示例 1:

javascript
const object1 = {};
 
console.log(Reflect.isExtensible(object1));
Reflect.preventExtensions(object1);
console.log(Reflect.isExtensible(object1));
 
const obj = {}; 
Reflect.preventExtensions(obj); 
console.log( 
Reflect.isExtensible(obj) 
);   
obj.val = 3; 
console.log( 
    obj.hasOwnProperty ("val") 
);


javascript
let empty = {}
console.log(Reflect.isExtensible(empty));
console.log(Reflect.preventExtensions(empty));
console.log(Reflect.isExtensible(empty));
 
const obj = {"val1":3, "val2":4}; 
Reflect.preventExtensions(obj); 
console.log ( obj.hasOwnProperty ( "val1" ) );  
delete obj.val1; 
console.log ( obj.hasOwnProperty ( "val2" ) );


输出:

true
false
false
false

示例 2:

javascript

let empty = {}
console.log(Reflect.isExtensible(empty));
console.log(Reflect.preventExtensions(empty));
console.log(Reflect.isExtensible(empty));
 
const obj = {"val1":3, "val2":4}; 
Reflect.preventExtensions(obj); 
console.log ( obj.hasOwnProperty ( "val1" ) );  
delete obj.val1; 
console.log ( obj.hasOwnProperty ( "val2" ) ); 

输出:

true
true
false
true
true

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

  • 谷歌浏览器 49 及更高版本
  • 边缘 12 及以上
  • 火狐 42 及以上
  • Opera 36 及以上
  • Safari 10 及更高版本