📜  JavaScript Object.preventExtensions() 方法

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

JavaScript Object.preventExtensions() 方法

JavaScript 中的Object.preventExtensions() 方法是标准的内置对象,可防止向对象添加新属性。
句法:

Object.preventExtensions( obj )

参数:此方法接受上面提到的单个参数,如下所述:

  • obj:此参数包含必须使其不可扩展的对象。

返回值:该方法将对象设为不可扩展后返回。
下面的示例说明了 JavaScript 中的 Object.preventExtensions() 方法:
示例 1:

javascript
let geeks1 = {};
   
Object.preventExtensions(geeks1);
   
try {
  Object.defineProperty(geeks1, 'prop1', {
    value: "GFG",
    property1:"Geeksforgeeks",
    property2:"Best platform to learn"
  });
} catch (error) {
  console.log(error);
}


javascript
var geeks = {};
var geeks0 = Object.preventExtensions(geeks);
console.log( geeks0 === geeks);
  
const geeks1 = {"prop1": 555}; 
Object.preventExtensions(geeks1); 
delete geeks1.prop1; 
console.log ( geeks1.hasOwnProperty ( "prop1" ) );
  
const geeks2 = {}; 
Object.preventExtensions(geeks2); 
geeks2.prop2 = 3; 
    
console.log( 
    geeks2.hasOwnProperty("prop2") 
);  
  
const geeks3 = {}; 
Object.preventExtensions(geeks3); 
console.log( 
    Object.isExtensible(geeks3) 
);


输出:

TypeError: Cannot define property prop1, object is not extensible

示例 2:

javascript

var geeks = {};
var geeks0 = Object.preventExtensions(geeks);
console.log( geeks0 === geeks);
  
const geeks1 = {"prop1": 555}; 
Object.preventExtensions(geeks1); 
delete geeks1.prop1; 
console.log ( geeks1.hasOwnProperty ( "prop1" ) );
  
const geeks2 = {}; 
Object.preventExtensions(geeks2); 
geeks2.prop2 = 3; 
    
console.log( 
    geeks2.hasOwnProperty("prop2") 
);  
  
const geeks3 = {}; 
Object.preventExtensions(geeks3); 
console.log( 
    Object.isExtensible(geeks3) 
);

输出:

true
false
false
false

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

  • 铬 6 及以上
  • 边缘 12 及以上
  • 火狐 4 及以上
  • Internet Explorer 9 及更高版本
  • Opera 12 及以上
  • Safari 5.1 及更高版本